4

我们可以使用从 jar 文件中挑选的测试来运行 j unit batchtest。

<zipfileset src="tests-only.jar" includes="**/*Test.class"/>

这会运行从 test-only.jar 中挑选的所有匹配测试

如何用 gradle 做类似的事情。testClassesDir只接受实际目录。

4

3 回答 3

1

请参阅 Gradle 用户手册的第23.12.2节。注意这个信息是从这个问题中找到的

于 2013-01-02T14:03:10.367 回答
1

Gradle 没有用于运行 Jar 文件中包含的测试类的内置功能。(请随时在http://forums.gradle.org提交功能请求。)应该做的是解压缩 Jar(作为单独的任务),然后进行testClassesDir相应的设置。请注意,测试类也需要出现在测试任务中classpath(但为此使用 Jar 可能就足够了)。

于 2013-01-04T18:37:44.090 回答
0

通过将 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")
}

同样也应该直接适用于您项目的“测试”配置。

于 2021-05-19T05:20:36.443 回答