Gradle项目java-demo示例mock无效(只有private有效)
Gradle项目运行java-demo示例,mock没有按照设置的期望运行,而是按照实际调用运行的。参考自助问题排查:发现在项目路径的build目录下找不到testable-agent.log(Gradle项目)文件,但是DemoPrivateAccessorTest以及DemoPrivateProcessorTest可以运行成功。
IDE:AndroidStudio4.1.3
与#128问题类似,但是我使用的TestableMock版本0.6.2/0.6.1,也不行
testable-agent.log没有生成说明执行单元测试的时候testable-agent.jar包没有正确引入。
如果是Android项目,添加依赖的方式会稍有差异,参考这篇文档底部,这个方式是验证过可行的。用AS编译普通Gradle项目没试过是否可行。
我目前工作环境由于网络原因无法正常安装AS和Android SDK,不能进行验证,不妨先再尝试检查一下项目的build.gradle文件,只要让单元测试运行的时候-javaagent:......这个参数正常加上应该就没问题了。
build.gradle使用的是demo->java-demo中的配置,没有做任何更改哦。这里是说java-demo不能运行通过,不是自己的项目。“只要让单元测试运行的时候-javaagent:......这个参数正常加上应该就没问题了”这一句没看明白。
估计是AS IDE直接用于普通Gradle项目(非Android项目)有些需要配置的地方。
可以先试试在命令行下,在java-demo目录,直接执行gradle build能否通过,如果正常的话,就可以排除Gradle原因,确定是AS配置问题。
-javaagent:....这个你可以先忽略不管,这个意思是当Gradle里的配置正常生效时候,Gradle启动单元测试的命令里就会包含这么个参数,可以作为判断配置是否生效的依据。用比如gradle build --debug方式构建的话就会看到,不过从现在现象来看已经可以基本确定是配置没生效,不用看这个了。
命令行下执行./gradlew build后,在build目录下找到了testable-agent.log文件以及报告,报告里面都可以成功通过。想问下你们AS不能运行demo项目,那你们是用什么IDE运行的?另外对于安卓项目,AS不兼容的问题怎么解决呢?
如果是Android项目,由于运行单元测试所用的Gradle组件不同,jvmArgs参数的配置位置与普通Java项目是不太一样的,见使用文档末尾处的说明。
AS在Android项目中使用TestableMock是验证过可行的,在issue-43有一个旧版本示例代码,近期由于办公网络原因无法正常安装Android SDK,过段时间来补上一个最新的完整AS示例。
demo/java-demo是一个非Android的普通Java项目,可以用IntelliJ IDE运行。
已增加demo/android-demo示例,可进入改目录通过./gradlew build运行。
如需在Android Studio中运行,可根据AS版本相应修改build.gradle中的com.android.tools.build:gradle依赖版本。
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下是否遗漏了下他设置,谢谢。