在Android Studio中如何调试单个Robolectric单元测试

3

如果按照以下步骤运行所有单元测试,就可以对我的Android Gradle项目进行调试:

首先配置IDE使用Gradle Run/Debug配置来进行使用Robolectric和JUnit的单元测试:

  1. 在IDE菜单中选择:文件 / 设置 / 编译器 / Gradle:取消“使用进程内构建”
  2. 在IDE中选择:运行 / 编辑配置 / + / Gradle
  3. 在字段中输入以下数据:名称:test,Gradle项目:.../app/build.gradle,任务:test,脚本参数:--debug --stacktrace

接下来,要在IDE中运行/调试测试:

  1. 从配置中选择“test”
  2. 运行测试:运行 / 运行“test”
  3. 调试测试:运行 / 调试“test”

这使我可以在调试器中运行所有测试。

现在,我正在寻找一种方法,只对指定的单个测试进行调试。 任何建议都将是很好的。


你在Android Studio中调试测试时都做了哪些步骤?你使用了哪个插件?一些插件可以为你提供完整的Robolectric支持,比如https://github.com/JCAndKSolutions/android-unit-test。 - nenick
1个回答

3

这取决于您使用的Gradle版本。 如果您使用的是1.x版本,则需要将以下脚本参数添加到运行配置中

-Dtest.single=<testfilename> 

e.g.

-Dtest.single=MyTest

您不必担心文件路径,只需要知道包含测试类的文件名,但不要包含结尾的.java

如果您使用的是gradle 2.x,则将以下脚本参数添加到运行配置中

--tests <test class name>

e.g.

--tests com.example.data.MyTest

或者 --tests *.MyTest

通过通配符,您不仅可以运行一个测试,还可以运行测试的子集。

--tests com.example.data.*

我正在使用Gradle 1.12,但是-Dtest.single=MyTest(其中MyTest被替换为不带包限定符的特定于实现的测试类)无效。所有测试都被运行了。我尝试将其指定为VM选项和脚本参数,但都没有帮助。 - Farrukh Najmi
以上答案中与Gradle 2.x相关的部分对我有用。与Gradle 1.x相关的部分则没有。 - Farrukh Najmi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接