我遵循了如何为maven设置env变量以正确运行测试?并将我的pom配置为:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<systemPropertyVariables>
<SENDGRID_USERNAME>username</SENDGRID_USERNAME>
<SENDGRID_PASSWORD>password</SENDGRID_PASSWORD>
</systemPropertyVariables>
</configuration>
</plugin>
当我运行mvn test
命令时,它给出以下错误,
Error in custom provider, java.lang.IllegalStateException: SENDGRID_PASSWORD env variable must be set.
我做错了什么?
当我进行研究以寻找答案时,我发现了以下几点:ProcessBuilder可以用于为使用它生成的进程设置env。我不知道ProcessBuilder是否对我的情况有帮助,因为我没有生成任何进程。我的项目是maven项目,我使用mvn-test命令运行测试。
有人能告诉我如何为这种情况设置env吗(即maven+junit)
我可以设置properties
,但问题是如何设置environment variable
,因为我的程序需要env变量。
如果我正确阅读了文档,那么要使用的配置是:
<environmentVariables>
<SENDGRID_USERNAME>username</SENDGRID_USERNAME>
<SENDGRID_PASSWORD>password</SENDGRID_PASSWORD>
</environmentVariables>
这可能是问题所在吗?
来源:http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#environmentVariables