我一直很难尝试使用TestNG和Cucumber设置在xml文件上传递参数。测试确实并行运行,但参数未被传递,返回null。根据SmartBear文档,@Parameters
应该可以工作,但它不能工作。下面是代码片段。想知道有没有人注意到这个问题。
POM
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<suiteXmlFiles>
<file>src/test/resources/testng.xml</file>
</suiteXmlFiles>
<properties>
<property>
<name>dataproviderthreadcount</name>
<value>2</value>
</property>
</properties>
XML_FILE
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite thread-count="2" name="Suite" parallel="tests">
<test name="Chrome">
<parameter name="os" value="Mac OSX 10.14"/>
<parameter name="browser" value="chrome"/>
<classes>
<class name="test.java.com.cucumber.TestRunner"/>
</classes>
</test> <!-- Test -->
<test name="Firefox">
<parameter name="os" value="Mac OSX 10.14"/>
<parameter name="browser" value="ff"/>
<classes>
<class name="test.java.com.cucumber.TestRunner"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
TESTRUNNER
@CucumberOptions(features = "classpath:features", glue = "test.java.com.step_definitions", tags = "@signin")
public class TestRunner extends AbstractTestNGCucumberTests {
@Override
@DataProvider(parallel = true)
public Object[][] scenarios() {
return super.scenarios();
}
}
方法,其中参数将传递给
@BeforeClass
@Parameters(value={"os","browser"})
public DesiredCapabilities CBT_ChromeDesiredCap(String os, String browser){
HashMap<String, String> cbtoptions = new HashMap<String, String>();
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("name", "Demo");
caps.setCapability("os", os);
caps.setCapability("browser", browser);
caps.setCapability("version", "72");
caps.setCapability("screenResolution", "1366x768");
caps.setCapability("record_network", "false");
caps.setCapability("cbt:options", cbtoptions);
return caps;
}
SmartBear文档https://support.smartbear.com/crossbrowsertesting/docs/automated-testing/parallel-testing.html
黄瓜文献https://cucumber.io/docs/guides/parallel-execution/
如果您需要更多的信息,请留下评论,谢谢您的帮助!
发布于 2021-07-09 15:40:25
我可以用下面的解决方案来解决这个问题。
Reporter.getCurrentTestResult().getTestContext().getCurrentXmlTest().getParameter("browser")
https://stackoverflow.com/questions/68310634
复制相似问题