我已经创建了一个maven项目,并尝试使用TestNG插件运行Cucumber+Selenium+Java测试。虽然一些使用JUnit+Cucumber的教程会显示某个功能的每个场景的结果,但my TestNG results选项卡只显示功能名称。我遗漏了什么?
我有一个功能认证里面,我有两个场景登录和注销。
我期望在TestNG的“运行套件的结果”选项卡中看到类似这样的内容:From a JUnit tutorial
发布于 2017-03-29 19:45:16
前面的答案是正确的,但不是
scenarioList.add(new Object[]{scenario, scenario.getGherkinModel().getName()});使用
scenarioList.add(new Object[]{scenario});发布于 2017-03-04 05:58:59
如果您遵循cucumber-jvm源代码(https://github.com/cucumber/cucumber-jvm/blob/master/examples/java-calculator-testng/src/test/java/cucumber/examples/java/calculator/RunCukesByFeatureAndCompositionTest.java)中给出的示例,那么由于DataProvider,这将为每个特性创建一个测试:
@DataProvider
public Object[][] features() {
return testNGCucumberRunner.provideFeatures();
}如果修改DataProvider以返回场景,则每个场景将得到一个testNG测试。
public List<CucumberFeature> getFeatures() {
return runtimeOptions.cucumberFeatures(resourceLoader);
}
public Object[][] provideScenarios() {
try {
List<CucumberFeature> features = getFeatures();
List<Object[]> scenarioList = new ArrayList<Object[]>(features.size());
for (CucumberFeature feature : features) {
List<CucumberTagStatement> scenarios = feature.getFeatureElements();
for (CucumberTagStatement scenario : scenarios) {
// If this is a Scenario Outline, split it up so each one is a test.
if (scenario instanceof CucumberScenarioOutline) {
List<CucumberExamples> cucumberExamplesList = ((CucumberScenarioOutline) scenario).getCucumberExamplesList();
for (CucumberExamples cucumberExamples : cucumberExamplesList) {
List<CucumberScenario> exampleScenarios = cucumberExamples.createExampleScenarios();
for (CucumberScenario exampleScenario : exampleScenarios) {
scenarioList.add(new Object[]{exampleScenario, exampleScenario.getGherkinModel().getName()});
}
}
} else
scenarioList.add(new Object[]{scenario, scenario.getGherkinModel().getName()});
}
}
return scenarioList.toArray(new Object[][]{});
} catch (CucumberException e) {
return new Object[][]{new Object[]{new CucumberExceptionWrapper(e)}};
}
}https://stackoverflow.com/questions/42344595
复制相似问题