无法使用cucumber和testng在xml文件上传递参数

insrf1ej  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(461)

我一直很难使用testng和cucumber设置在xml文件上传递参数。测试确实并行运行,但未传递参数,返回null。根据smartbear文档, @Parameters 应该行得通,但不行。下面是一段代码。我想知道是否有人遇到过这个问题。
聚甲醛

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-surefire-plugin</artifactId>
  4. <version>3.0.0-M4</version>
  5. <configuration>
  6. <suiteXmlFiles>
  7. <file>src/test/resources/testng.xml</file>
  8. </suiteXmlFiles>
  9. <properties>
  10. <property>
  11. <name>dataproviderthreadcount</name>
  12. <value>2</value>
  13. </property>
  14. </properties>

xml\u文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
  3. <suite thread-count="2" name="Suite" parallel="tests">
  4. <test name="Chrome">
  5. <parameter name="os" value="Mac OSX 10.14"/>
  6. <parameter name="browser" value="chrome"/>
  7. <classes>
  8. <class name="test.java.com.cucumber.TestRunner"/>
  9. </classes>
  10. </test> <!-- Test -->
  11. <test name="Firefox">
  12. <parameter name="os" value="Mac OSX 10.14"/>
  13. <parameter name="browser" value="ff"/>
  14. <classes>
  15. <class name="test.java.com.cucumber.TestRunner"/>
  16. </classes>
  17. </test> <!-- Test -->
  18. </suite> <!-- Suite -->

测试者

  1. @CucumberOptions(features = "classpath:features", glue = "test.java.com.step_definitions", tags = "@signin")
  2. public class TestRunner extends AbstractTestNGCucumberTests {
  3. @Override
  4. @DataProvider(parallel = true)
  5. public Object[][] scenarios() {
  6. return super.scenarios();
  7. }
  8. }

方法,将在其中传递参数

  1. @BeforeClass
  2. @Parameters(value={"os","browser"})
  3. public DesiredCapabilities CBT_ChromeDesiredCap(String os, String browser){
  4. HashMap<String, String> cbtoptions = new HashMap<String, String>();
  5. DesiredCapabilities caps = new DesiredCapabilities();
  6. caps.setCapability("name", "Demo");
  7. caps.setCapability("os", os);
  8. caps.setCapability("browser", browser);
  9. caps.setCapability("version", "72");
  10. caps.setCapability("screenResolution", "1366x768");
  11. caps.setCapability("record_network", "false");
  12. caps.setCapability("cbt:options", cbtoptions);
  13. return caps;
  14. }

smartbear文档https://support.smartbear.com/crossbrowsertesting/docs/automated-testing/parallel-testing.html
cucumber 文献https://cucumber.io/docs/guides/parallel-execution/
如果您需要更多信息,请留下评论,并感谢您的帮助!

pxy2qtax

pxy2qtax1#

我可以用下面的解决方案来解决它。

  1. Reporter.getCurrentTestResult().getTestContext().getCurrentXmlTest().getParameter("browser")

相关问题