我们可以使用从 jar 文件中挑选的测试来运行 j unit batchtest。
<zipfileset src="tests-only.jar" includes="**/*Test.class"/>
这会运行从 test-only.jar 中挑选的所有匹配测试
如何用 gradle 做类似的事情。testClassesDir只接受实际目录。
我们可以使用从 jar 文件中挑选的测试来运行 j unit batchtest。
<zipfileset src="tests-only.jar" includes="**/*Test.class"/>
这会运行从 test-only.jar 中挑选的所有匹配测试
如何用 gradle 做类似的事情。testClassesDir只接受实际目录。
Gradle 没有用于运行 Jar 文件中包含的测试类的内置功能。(请随时在http://forums.gradle.org提交功能请求。)应该做的是解压缩 Jar(作为单独的任务),然后进行testClassesDir
相应的设置。请注意,测试类也需要出现在测试任务中classpath
(但为此使用 Jar 可能就足够了)。
通过将 jar 文件视为 zip 文件并结合自定义 gradle 测试任务,这是可能的。
让我们假设 jar 文件位于您的项目主 runtimeClasspath 上,并命名为“tests-only.jar”。
以下代码片段允许 gradle 在 jar-File 中查找类,而无需实际提取它们:
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")
}
同样也应该直接适用于您项目的“测试”配置。