我使用的是 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
请您参考如下方法:
对于仍在关注的任何人,这适用于 Android Studio 0.2.8。但是,您需要注意三种状态。