Я собираюсь запустить тесты Cucumber с TestNG. Однако у меня проблема, когда все мои сценарии работают как один сеанс TestNG @Test
. Есть ли способ запустить каждый сценарий как отдельный @Test
сеанс?
Вот мой TestNG xml:
<suite name="cucumber Suites">
<test name="cucumber-testing">
<classes>
<class name="runners.Run2" />
</classes>
</test>
</suite>
Это вызовет запуск следующего класса Test:
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
import cucumber.api.testng.CucumberFeatureWrapper;
import cucumber.api.testng.TestNGCucumberRunner;
@CucumberOptions( features="cucumber/features/example.feature",
glue="steps",
format={"pretty"}
)
public class Run2 extends AbstractTestNGCucumberTests{
private TestNGCucumberRunner tcr;
@BeforeClass(alwaysRun=true)
public void beforeClass() throws Exception{
tcr = new TestNGCucumberRunner(this.getClass());
}
@Test(groups="cucumber", description="Runs CucumberFeature", dataProvider="features")
public void feature(CucumberFeatureWrapper cucumberFeature){
tcr.runCucumber(cucumberFeature.getCucumberFeature());
}
@DataProvider
public Object[][] features(){
return tcr.provideFeatures();
}
@AfterClass (alwaysRun=true)
public void afterClass(){
tcr.finish();
}
}
Мне интересно, есть ли способ получить @DataProviderto
сценарий предоставления и @Test
для запуска сценария вместо функций?
Причина этого в том, что у меня есть другие тесты TestNG со слушателями, и я хочу использовать те же слушатели для отчетов для тестов Cucumber.
Спасибо