如何为Android单元测试配置JUnit 5?我尝试过:
testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0")
但是它不起作用,当我运行以前最简单的单元测试时:
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
我收到错误:
Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader;
at org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry.loadTestEngines(ServiceLoaderTestEngineRegistry.java:31)
at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:42)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:36)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Process finished with exit code 1
Empty test suite.
4条答案
按热度按时间oxcyiej71#
有关Android上的JUnit 5支持,请参阅this issue和this issue。
在您的顶级build.gradle[.kts] 文件中添加此构建脚本依赖项:
并将以下行添加到您的应用或库 build.gradle[.kts] 文件中:
如果您使用的是Android Gradle插件3.2.0或更高版本和Gradle 4.7或更高版本,则可以使用上述解决方案。有关更多信息,请参阅plugin GitHub page。
扩展答案
如果要在插装测试(androidTest 源集)中使用JUnit 5,请执行以下操作:
1.将这些依赖项添加到您的应用或库构建脚本:
1.在测试类中使用
ActivityScenarioExtension
而不是ActivityScenarioRule
:smtd7mpg2#
Android Studio是基于IDEA的,对吗?
然后在此处查看此答案https://stackoverflow.com/a/46161799/1431016或直接阅读www.example.com上的用户指南http://junit.org/junit5/docs/current/user-guide/#running-tests-ide-intellij-idea
总结:
我还没有尝试过这个项目,但它可以帮助您在Android上使用JUnit 5:https://github.com/aurae/android-junit5
kwvwclae3#
请始终使用官方版本
首先,请访问Junit的官方文档,网址为:https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api您将看到所有最新版本,例如x1c 0d1x
然后在您的应用/gradle中添加以下依赖项:
测试实现('org.junit.jupiter:junit-jupiter:X. X. X')
其中X.X.X是您想要的版本。例如,在我的例子中,它是
测试实现('org.junit.jupiter:junit-jupiter:5. 6. 0')
ddrv8njm4#
您可以通过将以下行添加到您的gradle文件来使用正式版本:
要继续与Junit5一起运行JUnit4测试,请添加: