当前位置: 首页 > 知识库问答 >
问题:

如何使用testng实现和运行cucumber测试文件

曹浩
2023-03-14

试图实现硒cucumber测试而不是JUnit。

我的疑问是

  1. testng中@Runwith(Cucumber.class)的替代选项是什么
package runner;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;


@CucumberOptions(features="src/main/java/testCases/Cucumber/Login_Cucumber.Feature",glue="")
public class TestRunner extends AbstractTestNGCucumberTests {

}

共有3个答案

龚俭
2023-03-14

首先,cucumber有。功能文件,而不是测试文件。

第一个问题的答案:1。testng中@Runwith(Cucumber.class)的替代选项是什么?“使用TestNG运行时不需要@RunWith”

我不理解你的第二个问题,但你需要理解Cucumber runs默认执行Runner类,并且你已经在@CucumberOptions部分定义了功能文件。

为了更清楚,您可以使用TestNG轻松地实现和运行Cucumber项目。整个比赛都在你的pom里。xml文件和Runner类。

下面的细节还解释了可以使用TestNG在cucumber中运行每个场景作为测试。

怎样?下面解释:

首先,更新你的cucumberMaven依赖从info.cukes到io.cucumber依赖

Cucumber Runner类中的以下Java代码非常适合我在功能文件中以TestNG test的形式运行每个场景:

@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清洁测试命令,看看神奇:)

我很乐意看到你的问题得到解决。如果这个问题还没有解决,请告诉我。

参考:https://github.com/cucumber/cucumber-jvm/blob/master/testng/README.md

我遵循了这个方法:https://github.com/cucumber/cucumber-jvm/blob/master/examples/java-calculator-testng/src/test/java/cucumber/examples/java/calculator/RunCukesByCompositionTest.java

池俊茂
2023-03-14

安装TestNG Eclipse插件。之后,您应该能够运行TestNG Test。

夏侯野
2023-03-14

TestNg使用@CucumberOptions标记声明参数

@CucumberOptions(plugin = "json:target/cucumber-report.json")
public class RunCukesTest extends AbstractTestNGCucumberTests {
}

或者

@CucumberOptions(features = "src/test/resources/features/Download.feature",
        glue = "uk.co.automatictester.jwebfwk.glue",
        format = {"pretty"})

看看这个:https://github.com/cucumber/cucumber-jvm/tree/master/examples/java-calculator-testng

还有一个可能的问题:如何在testNG中集成cucumber?

 类似资料:
  • 我试图使用TestNG和SpringBootTest并行运行两个Cucumber测试,但当我的测试执行时,会发生以下情况 两个浏览器都打开并导航到维基百科主页 1个浏览器继续测试,另一个留在主页上 1个测试通过,另一个测试失败 我不知道为什么一个测试会停止执行,欢迎任何帮助。 回购:https://github.com/cmccarthyIrl/spring-cucumber-testng-par

  • 我正在使用cucumber测试和testng,我计划并行运行测试。我以前有使用testng框架和并行执行的经验,如果不使用mavensurfire插件(pom.xml),我如何实现相同的效果 我的配置, Cucumber JVM,TestNGCucumberRunner。用于触发特性文件的java文件

  • 我有一个Selenium项目,使用Maven和TestNG。 我已经尝试了几种不同的方法来使用Maven命令运行测试(我使用的是sure fire插件)。当我运行Maven时,测试不会运行。没有错误。 有没有人有一个很好的例子或教程,我可以遵循使我的测试运行时,我使用mvn测试? 提前道谢。 以下是输出: 和POM文件中的surefire配置:

  • 问题内容: 我想使用Jenkins运行用TestNG框架编写的Selenium测试。 在jenkins job(Freestyle project)中配置的命令: 注意:对于,给定目录路径 当我运行作业(选项)时,它被Selenium的create session活动打中并给出错误。 注意: 同样的命令运行 成功地 从运行时 的命令行 。 控制台输出的错误日志: (jenkins) 以下是测试课程

  • 我想使用Jenkins运行在TestNG框架中编写的Selenium测试。 jenkins作业(Freestyle项目)中配置的命令: 控制台输出的错误日志:(jenkins) 下面是测试类: 以下是: null

  • 我有一个testng xml文件,它被设置为运行一个特定的类,该类的方法包含以下组标记或被分组为以下类型之一: 并行测试 顺序测试 烟雾测试 虽然我的一些测试被指定为并行或顺序测试,但一些测试可能包含一个额外的标签“冒烟测试”。在这个场景中,我希望能够只运行那些被归类为“烟雾测试”的组件。当我运行测试时,它要么找不到任何测试,要么只是运行所有分组为“sequential-test”的测试。我似乎不