【发布时间】:2019-07-30 20:15:19
【问题描述】:
我有一个 Gradle 文件 (test.gradle),它当前正在从包含类名的 XML 文件中读取以确定要运行哪些测试。要测试的类从 XML 中过滤(到文件树中),然后使用 groovy 的 ant.junit() 运行。这主要是因为有单独的 Bamboo 代理需要运行特定的测试,这取决于提供的属性。我想在每个代理中并行运行任务。 ant.junit 没有类似 maxParallelForks 选项来指定要并行启动的 JVM 的确切数量。
目前发生的事情: - 在竹子中,test.gradle 被重命名为 build.gradle。它解压缩一个包含所有类的 jar,并将它们放在目标构建目录中。 - 有一项任务可以根据 Bamboo 配置中提供的属性从目标构建目录中过滤要测试的类(基于提供的 XML)到文件树中。 - 然后 ant.junit 使用以下命令运行测试:
batchtest(todir: "${testDir}") {
ant.filelist(dir: "${targetDir}/build", files:
filteredTests.join(","))
}
- Ant 似乎无法选择一次运行的并行 JVM 分支数量。我正在尝试将这些测试移至 java,希望能够设置一个 jvm 参数,该参数可以设置类似 maxParallelFork 选项的东西。或者只是在依赖于执行过滤的任务的 gradle 测试任务中运行文件树。我最好的选择是什么?
尝试过的事情: - 我试图将任务(将测试过滤到文件树并使用ant运行它们的任务)类型更改为测试。但这似乎不起作用。我的假设是因为没有项目结构并且从解压缩的 jar 中挑选东西,所以测试任务不知道如何运行它们。 - 我尝试创建一个单独的 gradle 测试任务(这将取决于过滤任务),其中包括 fileTree。但是运行似乎没有从包含的测试中找到类。我需要提及他们需要从中挑选的目录吗?
【问题讨论】:
标签: xml gradle groovy junit ant