私はTestNGでキュウリを使用してそれを達成しました。このようにして、私はTestNGとキュウリのフックの注釈を使用することができました。 TestNGは、フィーチャーファイルを実行します。ランナークラスは以下のとおりです。
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import cucumber.api.testng.CucumberFeatureWrapper;
import cucumber.api.testng.TestNGCucumberRunner;
import org.junit.runner.RunWith;
import org.testng.annotations.*;
@RunWith(Cucumber.class)
@CucumberOptions(
monochrome = true,
features = "src/test/java/features",
glue = {"utils","steps"},
tags = {"@test"},
format = {
"pretty",
"html:target/cucumber-reports/cucumber-pretty",
"json:target/cucumber-reports/CucumberTestReport.json",
"rerun:target/cucumber-reports/rerun.txt"}
)
public class CucumberRunnerUtil {
private TestNGCucumberRunner testNGCucumberRunner;
@BeforeSuite
public void setUpEnvironment(){
// your setup code e.g. environment set up etc.
}
@BeforeClass(alwaysRun = true)
public void setUpClass() throws Exception {
testNGCucumberRunner = new
TestNGCucumberRunner(this.getClass());
}
@Test(groups = "cucumber", description = "Runs Cucumber Feature",dataProvider = "features")
public void feature(CucumberFeatureWrapper cucumberFeature) {
testNGCucumberRunner.runCucumber(cucumberFeature.getCucumberFeature());
}
@DataProvider
public Object[][] features() {
return testNGCucumberRunner.provideFeatures();
}
@AfterClass(alwaysRun = true)
public void tearDownClass() throws Exception {
testNGCucumberRunner.finish();
}
@AfterSuite
public void cleanUp(){
// code to clean resources.
}
}
あなたの提案に感謝します。私は試してみましたが、エラーが出ます。引数型のシナリオだけがStringではないと言います。ここにエラーがあります: cucumber.runtime.CucumberException:フックが引数を宣言するとき、cucumber.api.Scenario型でなければなりません。 public void utils.CommonUtil.baseSetUp(java.lang.String) – learner
** cucumber-core ** libをプロジェクトに追加する必要があります。また、メインクラスのIDEのデフォルト設定がcucumber.cli.Mainである可能性があります。これをcucumber.api.cli.Mainに変更する必要があります –