为了连接到每个开发人员都有个人用户名和密码的外部系统,我需要将用户名和密码拉入我的 JUnit 测试用例:
String username = System.getProperty("ext.username");
上述行将在我的 test
文件夹中的任何类中调用
我怎样才能最好地通过 Maven 做到这一点?我认为该属性的最佳范围在 settings.xml
内,但我不确定将它从那里转移到我的代码中的最佳方式。
最佳答案
最好使用 Maven 构建配置文件解决该问题。
在您的 POM 中,您声明属性的默认值(以防止运行时可能出现的错误)。
<project>
..
<properties>
<ext.username>XXXXX</ext.username>
<ext.password>YYYYY</ext.password>
</properties>
然后每个开发人员都可以使用在其设置文件中指定的默认配置文件在本地构建中覆盖这些属性:$HOME/.m2/settings.xml
<settings>
..
<profiles>
<profile>
<id>dev</dev>
<activeByDefault>true</activeByDefault>
<properties>
<ext.username>XXXXX</ext.username>
<ext.password>YYYYY</ext.password>
</properties>
</profile>
..
</profiles>
..
</settings>
担心安全的也可以来encrypt the password .
最后,可以配置多个配置文件。这些可以在运行时选择(使用配置文件 ID)以支持多个构建环境:
mvn -Pdev ..
mvn -Pprod ..
关于java - 如何通过 Maven 获取私有(private)用户名和密码进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872981/