我将
Android Studio更新到版本3,从那时起我的所有spock测试在java模块中都不会在尝试从应用程序内部运行时运行(右键单击groovy文件夹 – >运行’在groovy中测试’).我得到一个:
Class not found: “package.name.classname“Empty test suite.”
如果我尝试运行单个测试,则相同.
如果我从gradle面板运行测试任务,我会得到:
error. Cause: unknown.
另一方面:
> Android模块中的任何spock测试运行正常.
>我所有模块中的所有Java测试运行正常.
>我的所有测试(spock和java)在使用gradle(gradlew clean test)从AS外部运行时运行正常.
我的设置:
> gradle v4.1
> android gradle插件v3.0.0
> java版本兼容性v1.8
>在我的java模块中,我使用的是gradle groovy plugin
>在我的android模块中,我使用的是groovy android gradle plugin
在谷歌和这里搜索后我尝试了一些事情:
>将android gradle插件更改回v2.3.3并将gradle更改为v3.3
>尝试将所有groovy类复制到build / classes / java / test
解决方法
所以这更像是一个解决方法,而不是一个实际的解决方案,但它应该给你的调试器回来,这可能是价值的90%:
你可以运行你的测试套件:
./gradlew <module>:test --debug-jvm
运行测试的jvm将暂停,直到调试器附加.
从Android Studio通过按ctrl shift a调出动作选择器(无论如何,在linux上检查你的操作系统的等价物)并选择:
Attach to local process…
一旦Android Studio连接,测试就会开始运行.
–debug-jvm标志可以与–tests一起用于调试单个测试:
./gradlew <module>:test --tests fully.qualified.test.Test --debug-jvm