当前位置: 首页 > 面试题库 >

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

邢华清
2023-03-14
问题内容

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

System.getProperty("cassandra.ip");

我有一个Gradle构建文件

gradle test -Pcassandra.ip=192.168.33.13

要么

gradle test -Dcassandra.ip=192.168.33.13

但是 System.getProperty 将始终返回 null

我发现的唯一方法是通过以下方式将其添加到我的Gradle构建文件中

test {
    systemProperty "cassandra.ip", "192.168.33.13"
}

我如何通过-D做到这一点


问题答案:

-P标志用于gradle属性,-D标志用于JVM属性。因为测试可能是在新的JVM中派生的,所以传递给gradle的-D参数不会传播到测试中-听起来这就是您所看到的行为。

您可以test像完成操作一样在您的块中使用systemProperty,但可以通过将其与-P一起传递来基于传入的gradle属性:

test {
    systemProperty "cassandra.ip", project.getProperty("cassandra.ip")
}

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

test {
    systemProperty "cassandra.ip", System.getProperty("cassandra.ip")
}


 类似资料:
  • 但是,System.GetProperty将始终返回NULL。 我找到的唯一方法是通过以下方式将其添加到我的Gradle构建文件中 我如何通过-d实现它

  • 22.13.4.通过系统属性执行单独测试 如上所述该机制已经被测试过滤取代 译者注:被取代的东西就先不翻译了 Setting a system property of taskName.single = testNamePattern will only execute tests that match the specified testNamePattern. The taskName can

  • 问题内容: 我在Windows上的Eclipse上进行开发,并且代码在Unix上进行了部署。我正在使用System.getProperty(“ key”)获取系统属性值…如何在Eclipse中传递它,这样我就不必修改代码,并且可以在Eclipse上进行调试? 有什么建议? 问题答案: 运行->运行配置,选择项目,第二个选项卡:“参数”。顶部框用于您的程序,底部框用于VM参数,例如。

  • null 我有两个问题: (1)我无法让Java可执行文件读取系统属性 我是否这样做: 我如何通过这些变量?另外,使用还是更好?

  • 通过sbt使用Flyway,如何通过系统属性(? 我想通过命令行运行迁移,指定所有参数(驱动程序、url、用户、密码),而不在中定义它们。 插件文档页面似乎表明这应该是可能的: 替代订单 系统属性 我试过这样运行它: 但是飞行路线。url属性似乎被忽略,取而代之的是在构建中定义的flywayUrl属性。sbt。 考虑包含以下文件的项目: 运行此命令: 产生此错误:

  • 问题内容: 我有一个运行的现有jar文件。它是Selenium RC服务器。我希望能够更改JVM httpProxy.host/port/etc系统值。一方面,我可以修改源代码并添加此功能。这将需要一些时间。还有另一种可能的方法吗?就像我自己的JAR(将设置这些JVM属性)在同一个JVM实例中调用selenium- rc(这样,它便能够修改其JVM变量的值)? 问题答案: 您可以使用以下命令在命令