我有一个Selenium项目,它使用Maven作为构建工具,我想从.properties文件中读取不同的环境细节(协议,域,子域等)。是否可以使用Maven配置文件在不同的环境中运行我的测试,例如dev,staging,prod,这是基于我在触发mvn命令时指定的配置文件?
dev.properties:
protocol=http
domain=domain.com
subdomain=www
的pom.xml:
<profiles>
<profile>
<id>prod</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>pre_prod</id>
</profile>
<profile>
<id>dev</id>
</profile>
</profiles>
MVN:
mvn clean test -Pdev
然后应使用
在java代码中检索数据System.getProperty("protocol");
System.getProperty("domain");
System.getProperty("subdomain");
非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
如果您只想根据命令行参数读取不同的属性文件,那么您是否只能传入一个字符串,例如-Denv = dev
然后在你的属性读者类中让它初始化基于System.getProperty的属性文件(&#34; env&#34;);
Properties generalProperties = new Properties();
String generalPropertiesFileName = "data/"+
System.getProperty("env") + ".properties";
initProperties(generalProperties, generalPropertiesFileName);
或者,您也可以以相同的方式将属性从命令行传递到POM -
<properties>
<property>
<protocol></protocol>
<domain></domain>
<subdomain></subdomain>
<property>
<properties>
然后这些可以从命令行传递为-Dprotocol = foo等
希望有帮助吗?