Как я могу разделить класс общих шагов и класс определений шагов в Cucumber, TestNG?

#java #automation #cucumber #testng #bdd

Вопрос:

Я хочу спросить, например, есть ли у меня класс определения шага GithubHomePageSteps.java соответствует файлу функций GithubHomePage.feature и классу общих шагов CommonSteps.java в том же пакете, который называется «шаги», как мне запустить тестовые примеры.

Здесь, в классе общих шагов, я сказал, что инициализация драйвера chrome в настройке() и выход из метода драйвера chrome в чистом(). Я поместил аннотации @BeforeSuite и @AfterSuite перед настройкой() и очисткой() выборочно.

Я также создал testng.xml (где я включил эти два класса CommonSteps и GitHubHomePageSteps) и класс TestRunner в пакет под названием runner. Когда я пытаюсь запустить тест, используя testng.xml файл, запущенный как TestNG Suite, я получаю исключение TestNgException, которое не может создать экземпляр класса GithubHomePageSteps. Кто-нибудь может мне помочь?

 testNg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test thread-count="5" name="Test">
    <classes>
      <class name="steps.GithubHomePageSteps"/>
      <class name="steps.CommonSteps"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

TestRunner.java:
package runner;

import org.testng.annotations.Test;

import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.CucumberOptions;

@CucumberOptions(
        features = {"src/test/resources/features"},
        glue = "steps",
        plugin = {"pretty", "json:target/json-report/cucumber.json"},
        dryRun = false,
        monochrome = true
)

@Test
public class TestRunner extends AbstractTestNGCucumberTests {

}
 

Ответ №1:

Просто добавьте классы определения шагов в клей, как показано ниже :

клей = { «com/arb/aut/Логин/Определения шага», «com/arb/aut/Панель мониторинга/Определения шага», «com/arb/aut/Карты/определения шага», «com/arb/aut/Крючки» }