Как получить тег @из файла excel в CucumberOptions в Selenium java

#java #selenium #selenium-webdriver #selenium-chromedriver #cucumber-java

Вопрос:

Обычно я бы написал вариант с огурцом, как показано ниже:

 @CucumberOptions(
        features = "src\main\java\feature"
            , glue= "stepdefination",
            plugin= {"com.cucumber.listener.ExtentCucumberFormatter:Report/Report.html"}
            tags="@tag, @tag1, @sort" 
           )
 

открытый класс TestRunner расширяет функцию тестирования {

 @Test
public void runcukes( ) {
    new TestNGCucumberRunner(getClass()).runCukes();
    
}


@BeforeClass
public void tags() {
 

}

 @AfterClass
public void writeExtentReport() {
    Reporter.loadXMLConfig("extent-config.xml");
}
 

}

Мой вопрос: Как я могу извлечь @tag, @tag1, @sort из файла excel в @cucmberoptions и запустить программу на Selenium Java?

Ответ №1:

Я не уверен в использовании вариантов с огурцами, но, используя RuntimeOptions класс огурцов, вы можете этого добиться. Приведенный ниже метод должен быть вызван в цикле, что означает, что у вас есть 10 тегов для выполнения, а затем вызовите этот метод в for цикле.

 public static boolean cucumberRun(String tag) {
        try {
            ClassLoader classLoader = CustomClass.class.getClassLoader();
            ResourceLoader resourceLoader = new MultiLoader(classLoader);
            ClassFinder classFinder = new ResourceLoaderClassFinder(resourceLoader, classLoader);

            /* Adding cucumber plugins */
            List<String> pluginList = new ArrayList<String>();
            pluginList.add("--plugin");
            pluginList.add("html:target/cucumber-html-report");
            pluginList.add("--plugin");
            pluginList.add("json:target/cucumber.json");
            pluginList.add("--plugin");
            pluginList.add("com.cucumber.listener.ExtentCucumberFormatter:");
            pluginList.add("--plugin");
            pluginList.add("rerun:target/failedScenarios.txt");

            /* Location for BDD extent report. */
            ExtentProperties extentProperties = ExtentProperties.INSTANCE;
            extentProperties.setReportPath("location/Extent_report.html");

            /*
             * Adding cucumberOptions.
             * 
             * You can get the tag value from excel and pass it here. We need to add @ before tag value.
             */
            RuntimeOptions ro = new RuntimeOptions(pluginList);
            ro.getFilters().add("@" tag);
            ro.getFeaturePaths().add("location of feature files");
            ro.getGlue().add("location of glue code");

            /* Loads all the resources into Cucumber RunTime class and execute. */
            cucumber.runtime.Runtime runtime = new cucumber.runtime.Runtime(resourceLoader, classFinder, classLoader,
                    ro);
            runtime.run();
}catch(Exception e){
// Handle exception
}