我想知道如何执行一些单个文件或实体,这些文件或实体知道我现在要运行JUnit 5案例的指定列表吗?
我知道即将推出JUnit5,这类似于测试套件,但是显然它们现在不可用,并且在不久的将来期待它们可能过于乐观了。我现在已经积累了一些测试,还有更多测试,不得不单独启动每个测试变得很乏味,而且随着测试数量的增加,情况只会变得更糟。我今天可以编写任何代码来一次自动运行多个测试吗?那将使我度过难关,直到即将发布的代码可用为止。 :-)
我不需要任何花哨的东西,只是提供了我想一次运行的JUnit5测试用例列表的一种方法。测试不必按指定的顺序运行,我很乐意将名称硬编码在某种列表中。我不需要GUI就能使它变得优雅,因为我可以等待。
我将Windows 10上的Eclipse 2018-19作为我的IDE,但是如果我需要打开命令提示符或使用其他工具启动测试,则现在可以使用它。
我一直在尝试自己拼凑一些东西,但这似乎超出了我的能力范围。
答案 0 :(得分:0)
您可以使用CLI选项
-c, --select-class=CLASS Select a class for test discovery.
This option can be repeated.
-m, --select-method=NAME Select a method for test discovery.
This option can be repeated.
ConsoleLauncher
的,通过编程方式或通过独立的JAR进行,如下所述:https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
这是经过修改的Gradle code snippet,可从JUnit 5用户指南项目中选择3个测试用例:
val consoleLauncherTest by tasks.creating(JavaExec::class) {
dependsOn("testClasses")
val reportsDir = file("$buildDir/test-results")
outputs.dir(reportsDir)
classpath(sourceSets["test"].runtimeClasspath)
main = "org.junit.platform.console.ConsoleLauncher"
// "select all classes available" via args("--scan-classpath") or
// supply a set of classes via "--select-class":
args("--select-class", "example.JUnit4Tests")
args("--select-class", "example.FirstJUnit5Tests")
args("--select-class", "example.DisplayNameGeneratorDemo")
args("--details", "tree")
args("--include-classname", ".*Tests")
args("--include-classname", ".*Demo")
args("--exclude-tag", "exclude")
args("--reports-dir", reportsDir)
systemProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager")
}