我的测试任务中有以下配置:
apply plugin: 'java'
...
test {
//Set system property for tests based on project gradle property
systemProperty "DEVICE_ID", rootProject.getProperty("DEVICE_ID")
}
我按如下方式调用任务:
./gradlew -PDEVICE_ID=someid test
我可以看到rootProject.getProperty(“ DEVICE_ID”)确实设置为someid
(很好)。
但是,在测试程序中,如果我获得DEVICE_ID系统属性,则在某些环境(不好)中将其设置为null,并且在某些环境中可以使用。我看不到工作环境与不工作环境之间的区别(相同的gradle版本,git repo中的相同代码)。
我看到了this和this链接,并认为它可能与我的问题有关,但不确定如何解决。请注意,我没有使用JunitPlatform插件,而是在我的测试中使用了Spock / Groovy,而不是junit,尽管我相信它使用与junit相同的测试运行程序。