我創建了一個maven項目,並嘗試使用TestNG插件運行Cucumber + Selenium + Java測試。儘管一些使用JUnit + Cucumber的教程在功能的每個場景中都會顯示結果,但我的TestNG結果選項卡僅顯示功能名稱。我錯過了什麼?如何讓TestNG在「運行套件的結果」中顯示黃瓜場景?
我有一個功能身份驗證 裏面,我有兩個場景登錄和註銷。
我期待這樣的事情在TestNG中的選項卡「運行套件的結果」: From a JUnit tutorial
我創建了一個maven項目,並嘗試使用TestNG插件運行Cucumber + Selenium + Java測試。儘管一些使用JUnit + Cucumber的教程在功能的每個場景中都會顯示結果,但我的TestNG結果選項卡僅顯示功能名稱。我錯過了什麼?如何讓TestNG在「運行套件的結果」中顯示黃瓜場景?
我有一個功能身份驗證 裏面,我有兩個場景登錄和註銷。
我期待這樣的事情在TestNG中的選項卡「運行套件的結果」: From a JUnit tutorial
如果您按照黃瓜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)}};
}
}
以前的答案是正確的,但的 代替
scenarioList.add(new Object[]{scenario, scenario.getGherkinModel().getName()});
使用
scenarioList.add(new Object[]{scenario});
你應該分享自己當前的TestNG的輸出和一種重現你descr的方法IBE。否則,就像你在尋求教程。 – juherr
我用我的輸出編輯過 – BugHunter