27

我使用的是 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
4

2 回答 2

35

对于仍在关注的任何人,这适用于 Android Studio 0.2.8。但是,您需要注意三种状态。

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

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

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

于 2013-09-12T18:45:52.323 回答
2

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

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

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

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

于 2014-05-14T17:28:18.527 回答