gradle junit运行:如何从jar文件中选择测试

时间:2013-01-02 13:56:35

标签: junit gradle

我们可以运行j unit batchtest with tests picked from a jar file.

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

这将运行从test-only.jar

中挑选的所有匹配测试

如何用gradle做类似的事情。 testClassesDir仅占用实际目录。

3 个答案:

答案 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")
}

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