如何使用maven从命令行将参数传递给testng.xml

问题描述 投票:0回答:3

我正在使用 testng 运行 appium 测试 想要将应用程序路径传递给所需功能作为 testng.xml 文件的参数 我如何使用 Maven 从命令行执行此操作?

maven testng
3个回答
7
投票

假设您有一个套件 xml 文件,如下所示

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="sample_suite" verbose="1" parallel="false" thread-count="2">
  <test name="sample_test">
    <parameter name="name" value="Krishnan"/>
    <classes>
      <class name="ParameterisedSampleTestClass" />
    </classes>
  </test>
</suite>

并且您希望将参数

name
的值更改为
Krishnan
以外的其他值(这是在套件 xml 文件中定义的值)

您基本上是通过传递 JVM 参数来完成此操作的

-Dname=John

TestNG 默认情况下支持更改参数值并在运行时通过 JVM 参数接受值。

对于 JVM 参数,您只需使用与参数名称相同的名称即可。

您可以在我的博客文章这里

找到更多详细信息

2
投票

您可以通过提供 JVM 参数来实现这一点,正如 Krishnan 在下面的帖子中提到的,以及链接中的不错的博客:

mvn -Dbrowser="chrome" test

并通过

将它们收集到您的代码(例如 java)中
String broswser = System.getProperty(browser);

然后转变成想要的能力:

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapability.setBrowserName(browser);

0
投票

使用 -D JVM 开关发送参数的想法非常有效。但是,它不会覆盖 testng.xml 中定义的参数。您必须将其从 testng.xml 中删除,以便 JVM 开关将其传递给您的代码。

© www.soinside.com 2019 - 2024. All rights reserved.