我写了Spock的扩展。 @Configuration具有两个参数:环境和文件-配置文件的路径,已解析groovy.util.ConfigSlurper。此外,可以将参数指定为系统属性:“org.wsw.spock.cfg.file”,“org.wsw.spock.cfg.environment”。如果指定了系统属性,则它们会覆盖注释中指定的设置(不确定是否更好,但仍然如此)。
我写了两个不同规格的测试。为了在gradle中运行它们,它写道:
task configTest ( type: Test, dependsOn: testClasses) {
include '**/ConfigurationTest.class'
}
task configSysPropsTest ( type: Test, dependsOn: testClasses) {
include '**/ConfigurationTestSysProps.class'
systemProperty 'org.wsw.spock.cfg.file', 'feature_test.gconfig'
systemProperty 'org.wsw.spock.cfg.environment', 'dev'
}
task test( overwrite: true,
dependsOn: [ configTest, configSysPropsTest ])
它有效,但是覆盖了任务测试,在我看来不是很好。报告文件夹(内部版本/报告/测试)仅包含一项测试的信息。
有几种方法可以使用不同的系统属性运行不同的测试?
最佳答案
我不太明白为什么您要覆盖test
任务。无论如何,运行具有不同系统属性的不同测试的唯一方法是拥有多个Test
任务。在这种情况下,您需要显式配置Test.reportsDir
(或在较新的Gradle版本中为Test.reports.html.destination
)。
也许您可以更改插件,以便每个测试类都有其自己的系统属性。然后,您可以一次设置所有系统属性。
关于gradle - Gradle:用于不同测试的不同系统属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19705720/