我有一些奇怪的情况(对于我来说)。我尝试运行基于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
答案 0 :(得分:2)
当您使用-Dtest运行时,只运行一个测试,并且未使用您在xml中定义的参数。您需要将-DsuiteXml提供给mvn测试并指定您的xml
或
定义browserversion,name和platform的默认数据,因为您将这些数据作为可选参数。