我需要能够通过命令行触发我的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 -->