Selenium 如何使用testng实现和运行cucumber测试文件
尝试实现selenium+Cucumber+Testng而不是Junit 我的问题是Selenium 如何使用testng实现和运行cucumber测试文件,selenium,cucumber,Selenium,Cucumber,尝试实现selenium+Cucumber+Testng而不是Junit 我的问题是 testng中@Runwith(Cucumber.class)的替代选项是什么 如何运行包含要素文件路径的类文件 安装TestNG Eclipse插件。之后,您应该能够运行TestNG Test。TestNG使用@CucumberOptions标记声明参数 @CucumberOptions(plugin = "json:target/cucumber-report.json") public class R
安装TestNG Eclipse插件。之后,您应该能够运行TestNG Test。TestNG使用@CucumberOptions标记声明参数
@CucumberOptions(plugin = "json:target/cucumber-report.json")
public class RunCukesTest extends AbstractTestNGCucumberTests {
}
或
看看这个:
还有一个可能的dup:首先,Cucumber有.feature文件,而不是测试文件 对第一个问题的回答:1。testng中@Runwith(Cucumber.class)的替代选项是什么?“使用TestNG运行时不需要@RunWith” 我不理解您的第二个问题,但您需要理解Cucumber runs默认执行Runner类,并且您已经在@CucumberOptions部分定义了功能文件 为了更清楚,您可以使用TestNG轻松地实现和运行Cucumber项目。整个游戏都在pom.xml文件和Runner类中 下面的细节还解释了可以使用TestNG在cucumber中运行每个场景作为测试 怎么做?具体解释如下: 首先,将Cucumber Maven依赖项从info.cukes更新为io.Cucumber依赖项 Cucumber Runner类中的以下Java代码非常适合我在功能文件中作为TestNG测试运行每个场景:
@CucumberOptions(features = "src/test/resources", plugin = "json:target/cucumber-report-feature-composite.json")
public class TestRunner {
private TestNGCucumberRunner testNGCucumberRunner;
@BeforeClass(alwaysRun = true)
public void setUpClass() throws Exception {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
}
@Test(groups = "cucumber scenarios", description = "Runs Cucumber
Scenarios", dataProvider = "scenarios")
public void scenario(PickleEventWrapper pickleEvent, CucumberFeatureWrapper
cucumberFeature) throws Throwable{
testNGCucumberRunner.runScenario(pickleEvent.getPickleEvent());
}
@DataProvider
public Object[][] scenarios() {
return testNGCucumberRunner.provideScenarios();
}
@AfterClass(alwaysRun = true)
public void tearDownClass() throws Exception {
testNGCucumberRunner.finish();
}
}
使用mvn clean test命令运行,并查看神奇之处:)
我很高兴看到你的问题得到解决。如果这个问题还没有解决,请告诉我
参考:
我采用了这种方法:
它肯定会工作。testng安装在eclipse的这个实例中。请你不要给出这样的答案。这个解决方案不起作用,不确定它是否得到了应用。我找到了这样的提示。当我在同一个类中添加@test注释时,它们正在运行。不知道这是不是正确的方法这是其中一种方法。Maven无法意识到在这种情况下什么是测试。这两个注释基本上告诉testng什么是测试。更清楚地说,“@test”用于将类/函数注释为测试,否则testng会将方法视为正常函数。当框架没有Cucumber等其他工具时,在测试套件中使用“@Test”。要充分利用要素文件并指定要运行的要素文件,必须使用“@CucumberOptions”注释。
@CucumberOptions(features = "src/test/resources/features/Download.feature",
glue = "uk.co.automatictester.jwebfwk.glue",
format = {"pretty"})
@CucumberOptions(features = "src/test/resources", plugin = "json:target/cucumber-report-feature-composite.json")
public class TestRunner {
private TestNGCucumberRunner testNGCucumberRunner;
@BeforeClass(alwaysRun = true)
public void setUpClass() throws Exception {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
}
@Test(groups = "cucumber scenarios", description = "Runs Cucumber
Scenarios", dataProvider = "scenarios")
public void scenario(PickleEventWrapper pickleEvent, CucumberFeatureWrapper
cucumberFeature) throws Throwable{
testNGCucumberRunner.runScenario(pickleEvent.getPickleEvent());
}
@DataProvider
public Object[][] scenarios() {
return testNGCucumberRunner.provideScenarios();
}
@AfterClass(alwaysRun = true)
public void tearDownClass() throws Exception {
testNGCucumberRunner.finish();
}
}
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
@CucumberOptions(features="src/test/resources/features",glue="stepDefinitions",tags="@Test01",plugin= {"pretty", "html:target/cucumber-reports" },monochrome=true)
public class RunnerTest extends AbstractTestNGCucumberTests{
}