如何通过Gradle和-D为我的测试赋予系统属性

我有一个读取系统属性的Java程序

System.getProperty(“cassandra.ip”);

我有一个Gradle构建文件,我从它开始

梯度测试-Pcassandra.ip=192.168.33.13

梯度测试-Dcassandra.ip=192.168.33.13

但是System.getProperty将始终返回null

我找到的唯一方法是通过

测试{
systemProperty“cassandra.ip”,“192.168.33.13”
}

我如何通过-D实现它

-p标志用于渐变属性,-D标志用于JVM属性。因为测试可能在一个新的JVM中分叉,所以传递给gradle的-D参数将不会传播到测试中-听起来这就是您看到的行为

您可以在test块中使用systemProperty,就像您所做的那样,但是通过将它与传入的gradle属性一起传递,它将基于传入的gradle属性-p:

测试{
systemProperty“cassandra.ip”,project.getProperty(“cassandra.ip”)
}

或者,如果您通过-D传递它

测试{
systemProperty“cassandra.ip”,System.getProperty(“cassandra.ip”)
}

发表评论