如何在Android Studio中将测试方法或类作为Android测试运行

时间:2013-08-17 00:47:47

标签: junit intellij-idea android-studio android-testing

我使用的是Android Studio 0.2.4,但我认为这个问题一般与IntelliJ有关。我的测试在src / instrumentTest / java下,并且都扩展了AndroidTestCase。当我运行所有测试时(例如右键单击源文件夹并单击“运行...”),测试在Android模拟器上运行就像Android测试一样(如运行/调试配置中所示)。

但是,如果我尝试以相同的方式运行单个测试方法或测试类(右键单击该方法并单击“运行...”),测试将作为正常的JUnit测试运行,而不是在模拟器上运行,当然失败了(下面的堆栈跟踪)。即使我尝试创建一个新的运行配置,我也看不到创建除JUnit配置之外的任何东西。

从IDE中,如何将测试方法或测试类作为Android测试运行?

Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:188)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 3 more

2 个答案:

答案 0 :(得分:35)

对于仍然关注的人,这适用于Android Studio 0.2.8。但是,您需要了解三种状态。

  1. 如果您以前从未运行过测试方法或类,则不会保存运行配置。因此,右键单击方法或类,Run旁边应该有一个右箭头,显示测试的名称。选择具有Android符号的那个。

  2. 如果您之前将测试方法或类作为常规JUnit测试运行,则Android Studio将保存该配置,并且在上下文菜单中的“运行”下将没有右箭头或选项。在这种情况下,在文件菜单中转到Run-> Edit Configurations ...,在JUnit部分下找到您的测试,然后将其删除。然后你应该处于州(1)。

  3. 如果您之前已将测试方法或类作为Android测试运行,则Android Studio将保存该配置,并且在上下文菜单中的“运行”下将没有右箭头或选项。只需选择Run就可以了。

答案 1 :(得分:2)

您是否在Android Studio中正确设置了测试代码? Gradle在Android Studio中的最新约定是调用您的测试目录“ androidTest ”。然后在build.gradle文件中,您需要输入:

    androidTest.setRoot('androidTest')
    androidTest.java.srcDirs = ['androidTest/java']

然后,您可以单独右键单击任何测试类并运行它。

修改: 这些说明仅适用于浓缩咖啡测试。