微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Java-Maven项目中定义环境变量?

如何解决如何在Java-Maven项目中定义环境变量?

我正在开发一种用于测试UI和API的混合框架。

我想在QA和UAT环境中执行相同的测试。我有用于qa和uat的.properties文件。还有一个将执行测试的testng.xml文件我有特定于环境的UI和API测试。

我想定义一个通用环境变量,该变量在执行maven执行(mvn测试)时将通过.properties文件读取器读取,然后再执行UI或API测试-如何/在何处定义此环境变量?>

解决方法

            <configuration>
                <environmentVariables>
                    <environemnt>${environemnt}</environemnt>
                    <browser>${browser}</browser>
                </environmentVariables>
            </configuration>

在pom.xml文件中的maven-surefire-plugin下添加以上配置后,可以在所需的环境和浏览器中执行所需的testng.xml文件。 例如,

mvn测试-Denvironment = qa -Dbrowser = firefox -DsuiteXmlFile = testng_ui.xml

,

通常,在创建框架时(从头开始;不建议这样做,因为可以直接选择许多然后进行定制以满足需求),您应该负责读取属性文件。现在,从方程式中删除此详细信息,您可以将“通用环境变量” 直接放入pom文件中。这是一个解决方案:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${maven-surefire-plugin.version}</version>
    <configuration>
        <systemProperties>
            <property>
                <name>myUniversalProperty</name>
                <value>Same in all envs</value>
            </property>
        </systemProperties>
    </configuration>
</plugin>

现在,这将使您可以使用System.getProperty("myUniversalProperty")表达式读取值。请注意,在这种情况下,<value>也可以在运行应用程序时作为命令行参数传递。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。