Maven不读取test.xml中的参数

时间:2015-11-11 14:31:24

标签: java xml maven

我有一些奇怪的情况(对于我来说)。我尝试运行基于Java + TestNG + WebDriver + Maven的框架。这是一段TestBase代码:

@BeforeClass
@Parameters({ "browser", "version",
        "platform" })
public void setUp(@Optional String browser, @Optional String version, @Optional String platform)
        throws Exception {
    DesiredCapabilities capability = new DesiredCapabilities();
    capability.setCapability("platform", platform);
    capability.setCapability("browserName", browser);
    capability.setCapability("browserVersion", version);

    webDriver2 = new RemoteWebDriver(new URL(
                    "http://127.0.0.1:4444/wd/hub"),
            capability);

的test.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="2" name="Suite" parallel="tests">
   <test name="FireFox_MAC">
      <parameter name="browser" value="firefox" />
      <parameter name="version" value="41.0.2" />
      <parameter name="platform" value="MAC" />
      <classes>
        <class name="com.testcases.AccountSuit" />
      </classes>
  </test> 
  <test name="Chrome_WIN7">
     <parameter name="browser" value="chrome" />
     <parameter name="version" value="42" />
     <parameter name="platform" value="WINDOWS" />
     <classes>
        <class name="com.testcases.AccountSuit" />
     </classes>
  </test>
</suite>

问题是下一个: 当我尝试通过IDE Eclipse pom.xml-&gt; Run As ...-&gt; Maven测试运行测试时。一切正常。 Maven并行运行两个测试。一个在FF上,第二个在chrome上。 test.xml-&gt; Run As ...-&gt; TestNG。 但是当我尝试通过控制台运行测试时,使用命令“mvn test -Dtest = com.testcases.AccountSuit”我已经在日志中“无法为Capabilities创建新的驱动程序实例[{browserVersion = null,browserName = null ,platform = null}]“ 我需要用命令启动测试,因为我需要自动通过Jenkins启动它们。 我很困惑(请帮忙。 附: maven-surefire-plugin版本2.18

1 个答案:

答案 0 :(得分:2)

当您使用-Dtest运行时,只运行一个测试,并且未使用您在xml中定义的参数。您需要将-DsuiteXml提供给mvn测试并指定您的xml

定义browserversion,name和platform的默认数据,因为您将这些数据作为可选参数。