我们可以运行j unit batchtest with tests picked from a jar file.
<zipfileset src="tests-only.jar" includes="**/*Test.class"/>
这将运行从test-only.jar
中挑选的所有匹配测试如何用gradle做类似的事情。 testClassesDir仅占用实际目录。
答案 0 :(得分:1)
请参阅Gradle用户手册的23.12.2部分。请注意,此信息来自this question
答案 1 :(得分:1)
Gradle没有内置功能来运行Jar文件中包含的测试类。 (随意在http://forums.gradle.org提交功能请求。)应该解决Jar(作为单独的任务)然后相应地设置testClassesDir
应该做什么。请注意,测试类也需要出现在测试任务的classpath
上(但是为此可能会使用Jar)。
答案 2 :(得分:0)
可以将 jar 文件视为 zip 文件并结合自定义 gradle 测试任务。
假设 jar 文件位于您的项目主 runtimeClasspath 中,并命名为“tests-only.jar”。
以下代码段允许 gradle 在 jar 文件中查找类,而无需实际提取它们:
task testOnlyTests(type: Test) {
useJUnit()
// the project runtimeClasspath should include all dependencies of the tests-only.jar file
classpath = project.sourceSets.main.runtimeClasspath
testClassesDirs = project.sourceSets.main.output
// find file tests-only.jar in dependencies or adjust the snippet to find it by other means
File testJar = classpath.files.find { it.toString().contains("tests-only.jar") }
testClassesDirs += zipTree(testJar)
include("**/*Test.class")
}
这也应该直接适用于您项目的“测试”配置。