如何通过命令行使用TestNG和标签触发Cucumber并行测试执行?

时间:2019-11-08 13:47:47

标签: java selenium selenium-webdriver automation cucumber

我需要能够通过命令行触发我的Cucumber测试,目前我正在使用Cucumber 4,并且我已阅读以下文档:https://cucumber.io/docs/guides/parallel-execution/

我的问题:运行下面列出的命令时,它似乎会执行我的所有测试,而不是仅运行登录测试。

我希望通过命令行运行一个命令,该命令的目标是我的testng.xml,而该目标又将我的跑步者作为目标,但是我可以通过命令行更改测试标签和线程数。

谢谢

示例:

不起作用: mvn clean compile test -Denvironment=test4 -Dcucumber.options="src/test/resources/features --glue stepDefinitions --tags @Login--plugin pretty --plugin html:target/cucumber --plugin json:target/cucumber.json --threads 3"

不起作用: mvn clean compile test -Denvironment=test4 -Dcucumber.options="src/test/resources/features --glue stepDefinitions --tags @Login--plugin pretty --plugin html:target/cucumber --plugin json:target/cucumber.json --threads 3 -g parallel src/test/features"

有效,但触发所有测试,而不仅是登录测试: mvn clean compile test -Ddataproviderthreadcount=2 -Dcucumber.options="--tags @login"

我的跑步者班(使用Tesng):


import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.CucumberOptions;
import org.testng.annotations.DataProvider;

@CucumberOptions(features = { "classpath:features" }, glue = {
        "stepDefinitions"}, monochrome = true, tags = {"@login"}, dryRun = false,
        plugin = { "pretty", "html:target/cucumber", "json:target/cucumber.json"})

public class MainRunner extends AbstractTestNGCucumberTests {
    @Override
    @DataProvider(parallel = true)
    public Object[][] scenarios() {
        return super.scenarios();
    }
}

//TestNG xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes">
    <!--   <test  name="Test" parallel="methods" thread-count="3"> -->
    <!--    <test name="Test">-->
    <test name="Test">
        <classes>
            <class name="runners.MainRunner"/>
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->

0 个答案:

没有答案