gradle - Gradle:用于不同测试的不同系统属性

标签 gradle spock

我写了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/

相关文章:

gradle - Gradle,过滤资源的一种方法进行测试,而打包工件时的另一种方法

windows - 构建脚本中的平台独立符号链接(symbolic link)

android - flutter 的android应用程序在 Release模式下卡住在启动屏幕上

java - Android 合并调试资源失败

unit-testing - Controller 测试中的 Grails 4.0 模拟服务方法

java - 使用 Spock 框架运行 Android 单元测试

java - 如何配置Spock测试来加载Spring Context(对于@Autowired)?

groovy - 如何为 Spock 中的所有可继承类只执行一次 setupSpec()

SVN 使用 Gradle 提交

gradle - 斯波克+格拉德。并行测试执行