在 Maven 项目中运行 Scalatest 时如何使用 -D 设置系统属性
我是 Scala 和 Maven 的新手,我们开始使用 Scalatest 为 Java 项目进行预部署测试。我们正在使用 maven-scala-plugin 来运行测试,并且我们想要从命令行读取一些参数(属性)来运行测试,例如:
mvn test -Dparam1=value1 -Dparam2=value
但是问题是当我们使用 System.getProperty( "param1") 在测试中它返回 null
,它应该是 value1
。
任何建议将不胜感激!
I am new to Scala and Maven, we are starting to use Scalatest to do pre deployment tests for a Java project. We are using maven-scala-plugin to run the tests, and we want to read some parameters (properties) off the command line to run the test, for example:
mvn test -Dparam1=value1 -Dparam2=value
however the problem is that when we use System.getProperty("param1")
in tests it gives back null
, which should be value1
.
Any advices will be appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我怀疑这是因为 maven 分叉了进程并创建了一个新的 JVM 来运行测试。您可以通过像
mvn -DforkMode=never
那样运行它来禁用分叉。I suspect this is because maven forks the process and creates a new JVM to run the tests in. You can disable forking by running it like
mvn -DforkMode=never
.您可以将环境变量用作
System.getProperty("param1")
,无论您想要使用系统环境,都必须将 param1 的值作为-Dparam1=abc
传递mvn 命令中的 code> ,否则它会在代码中抛出一些 nullException 。You can just use the environment variables as
System.getProperty("param1")
where ever you want to use the system environment, you must pass the value of param1 as-Dparam1=abc
in mvn command, else it will throw some nullexception in your code.