如何从gradle项目中的命令行覆盖集成测试中的属性?

时间:2016-06-30 18:15:00

标签: java gradle properties

例如,假设您在属性文件中指定了数据源,并且希望在CI中覆盖它。如果我这样做:

{{1}}

...这对于正在运行的测试JVM是可见的,还是仅仅是Gradle?这样做的正确方法是什么?我现在正在编写一个测试来解决这个问题,但如果答案首先出现在这里,其他人可以拥有切达干酪。

1 个答案:

答案 0 :(得分:0)

不,只是以这种方式传递它不会使这个变量在你的测试中有用。您已配置测试任务,以使其将此属性填充到测试中。

这可以通过这种方式对所有测试任务执行一次

tasks.withType(Test) { systemProperty 'datasource.user', System.getProperty('datasource.user', 'defaultisername') }

或者,如果要填充多个变量,则将它们全部传递一次,如此

test {
    options {
        systemProperties(System.getProperties())
    }
}