Как я могу запустить огурец без какого-либо файла функций? - PullRequest
0 голосов
/ 10 мая 2019

Я создаю инфраструктуру автоматизации с использованием Cucumber для BDD, JUnit и Selenium, у нас есть экземпляр testrail в облаке для управления тестами, и я реализовал API-интерфейс testrail для получения всех тестовых примеров, проблема в том, что я ' Я не могу выполнить эти шаги для получения тестовых случаев, потому что cucumber всегда проверяет наличие первого файла объектов.

Я пробовал с @Before (Cucumber), @BeforeClass (JUnit), и результат всегда одинаков:

На [classpath: functions] нет функций 0 Сценарии 0 шагов 0m0.019s

Это основной класс, запускающий процесс:

 import cucumber.api.CucumberOptions;
 import cucumber.api.java.Before;
 import cucumber.api.junit.Cucumber;
 import org.apache.log4j.Logger;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.runner.RunWith;

 import static 
 com.mps.framework.support.support.Property.BROWSER_NAME;


 @RunWith(Cucumber.class)
 @CucumberOptions(
    plugin = "json:target/cucumber.json",
    features = {"classpath:features"},
    glue = {"com.selenium.test.stepdefinitions", "com.mps.selenium.hook"},
    tags = {"not @ignore"})


 public class SeleniumCukes {

private static final Logger LOG = Logger.getLogger(SeleniumCukes.class);

    @BeforeClass
    public static void startSelenium() {
     LOG.info("### Starting Selenium " + 
     BROWSER_NAME.toString().toUpperCase() + " ###");
    }

    @AfterClass
    public static void stopSelenium() {
     LOG.info("### Stopping Selenium ###");
     }
 }

Это класс крючков:

 import com.mps.selenium.base.SeleniumBase;
 import cucumber.api.Scenario;
 import cucumber.api.java.After;
 import cucumber.api.java.Before;
 import org.springframework.beans.factory.annotation.Autowired;

 import static com.mps.framework.support.hook.Hooks.hookAfter;
 import static com.mps.framework.support.hook.Hooks.hookBefore;

 public class Hooks {

   @Autowired
   private SeleniumBase seleniumBase;

   @After
   public void after() {
     hookAfter(seleniumBase.getDriver());
   }

   @Before
   public void before(Scenario scenario) {
     hookBefore(scenario);
   }
}

1 Ответ

1 голос
/ 13 мая 2019

Я не уверен, что вы пытаетесь достичь, но он думает, что вы ищете аннотацию @BeforeSuite (используйте импортные аннотации. BeeSuite)

...