testable-mock icon indicating copy to clipboard operation
testable-mock copied to clipboard

Gradle项目java-demo示例mock无效(只有private有效)

Open mxiu-sv opened this issue 4 years ago • 8 comments

Gradle项目运行java-demo示例,mock没有按照设置的期望运行,而是按照实际调用运行的。参考自助问题排查:发现在项目路径的build目录下找不到testable-agent.log(Gradle项目)文件,但是DemoPrivateAccessorTest以及DemoPrivateProcessorTest可以运行成功。

IDE:AndroidStudio4.1.3

mxiu-sv avatar Apr 20 '21 06:04 mxiu-sv

与#128问题类似,但是我使用的TestableMock版本0.6.2/0.6.1,也不行

image

mxiu-sv avatar Apr 20 '21 06:04 mxiu-sv

testable-agent.log没有生成说明执行单元测试的时候testable-agent.jar包没有正确引入。

如果是Android项目,添加依赖的方式会稍有差异,参考这篇文档底部,这个方式是验证过可行的。用AS编译普通Gradle项目没试过是否可行。 我目前工作环境由于网络原因无法正常安装AS和Android SDK,不能进行验证,不妨先再尝试检查一下项目的build.gradle文件,只要让单元测试运行的时候-javaagent:......这个参数正常加上应该就没问题了。

linfan avatar Apr 20 '21 08:04 linfan

build.gradle使用的是demo->java-demo中的配置,没有做任何更改哦。这里是说java-demo不能运行通过,不是自己的项目。“只要让单元测试运行的时候-javaagent:......这个参数正常加上应该就没问题了”这一句没看明白。

mxiu-sv avatar Apr 20 '21 09:04 mxiu-sv

估计是AS IDE直接用于普通Gradle项目(非Android项目)有些需要配置的地方。

可以先试试在命令行下,在java-demo目录,直接执行gradle build能否通过,如果正常的话,就可以排除Gradle原因,确定是AS配置问题。

-javaagent:....这个你可以先忽略不管,这个意思是当Gradle里的配置正常生效时候,Gradle启动单元测试的命令里就会包含这么个参数,可以作为判断配置是否生效的依据。用比如gradle build --debug方式构建的话就会看到,不过从现在现象来看已经可以基本确定是配置没生效,不用看这个了。

linfan avatar Apr 20 '21 11:04 linfan

命令行下执行./gradlew build后,在build目录下找到了testable-agent.log文件以及报告,报告里面都可以成功通过。想问下你们AS不能运行demo项目,那你们是用什么IDE运行的?另外对于安卓项目,AS不兼容的问题怎么解决呢?

mxiu-sv avatar Apr 21 '21 04:04 mxiu-sv

如果是Android项目,由于运行单元测试所用的Gradle组件不同,jvmArgs参数的配置位置与普通Java项目是不太一样的,见使用文档末尾处的说明。

AS在Android项目中使用TestableMock是验证过可行的,在issue-43有一个旧版本示例代码,近期由于办公网络原因无法正常安装Android SDK,过段时间来补上一个最新的完整AS示例。

demo/java-demo是一个非Android的普通Java项目,可以用IntelliJ IDE运行。

linfan avatar Apr 21 '21 07:04 linfan

已增加demo/android-demo示例,可进入改目录通过./gradlew build运行。

如需在Android Studio中运行,可根据AS版本相应修改build.gradle中的com.android.tools.build:gradle依赖版本。

linfan avatar May 02 '21 14:05 linfan

hi,无论使用AS(版本4.1.3)或者IntelliJ IDE(2021.1)运行Android-demo,测试用例仍然运行失败的(同问题128),com.android.tools.build:gradle修改成了4.1.0+。build文件夹下也没有testable-agent.log文件生成,帮忙check下是否遗漏了下他设置,谢谢。

mxiu-sv avatar May 06 '21 06:05 mxiu-sv