Skip to main content
 首页 » 编程设计

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

2024年11月01日17mate10pro

我使用的是 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。但是,您需要注意三种状态。

  • 如果您以前从未运行过测试方法或类,则不会保存运行配置。所以右键单击方法或类,运行旁边应该有一个向右箭头,显示测试的名称。选择带有 Android 符号的那个。
  • 如果您之前已将测试方法或类作为常规 JUnit 测试运行,那么 Android Studio 将保存该配置,并且上下文菜单中的“运行”下不会有向右箭头或选项。在这种情况下,在文件菜单中转到 Run->Edit Configurations...,在 JUnit 部分下找到您的测试,然后将其删除。那么你应该处于状态 (1)。
  • 如果您之前已将测试方法或类作为 Android 测试运行,那么 Android Studio 将保存该配置,并且上下文菜单中的“运行”下不会有向右箭头或选项。只需选择运行即可。