2013-08-17 67 views
25

我正在使用Android Studio 0.2.4,但我认为这个问题通常可以与IntelliJ相关。我的测试是在src/instrumentTest/java下进行的,并且都扩展了AndroidTestCase。当我运行所有测试时(比如右键单击源文件夹并单击“运行...”),测试在Android模拟器上正常运行(如运行/调试配置下所示)。但是,如果我尝试以同样的方式运行单个测试方法或测试类(右键单击该方法并单击“运行...”),测试将作为正常的JUnit测试而不是模拟器运行当然会失败(下面的堆栈跟踪)。即使我尝试创建一个新的运行配置,我也没有办法创建除JUnit配置之外的其他任何东西。如何在Android Studio中运行测试方法或类作为Android测试

从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 

回答

36

对于任何人仍然关注,这可以在Android Studio 0.2.8中使用。有三种状态需要注意。

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

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

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

+2

和intellij IDEA呢?你有没有找到任何解决方法? –

2

您是否在Android Studio中正确设置了测试代码? Gradle在Android Studio中的最新约定是致电您的测试目录'androidTest'。然后在您的build.gradle文件,你需要把:

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

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

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

+1

这帮助我在kotlin中识别出kotlin测试文件androidTest.java.srcDirs + ='src/androidTest/kotlin'' –

相关问题