Как сопоставить определенный файл Java с конкретным файлом функции в огурце - PullRequest
0 голосов
/ 25 июня 2019

Я создал три java-файла и файла функций в cucumber, и для каждого java-файла есть следующая часть кода.

@Before
public void startbrowser() {
 System.setProperty("webdriver.gecko.driver","/Users/firatkaymaz/eclipse-workspace/SeleniumTest/drivers/geckodriver/geckodriver");
 driver = new FirefoxDriver();

поэтому, как только я пытаюсь запустить один из моих файлов огурцов (запустить как -> функция огурца), открывается три браузера, потому что выполняются все аннотации @Before, расположенные в трех файлах java. как я могу избавиться от этого? Я хочу сопоставить файл объектов с именем TestCase1.feature с Case1.java, поэтому, когда я выполняю соответствующий файл объектов, будет выполняться Case1, поэтому можно будет открыть только один браузер, как и ожидалось. есть идеи?

файлы

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Альтернативный подход заключается в использовании аннотации @ScenarioScoped для класса. Вам нужно добавить cucumber-guice в ваш файл POM или что-то еще. Затем вы можете добавить эту аннотацию к классу, в котором создан ваш драйвер, и для всего сценария будет один его экземпляр. http://www.thinkcode.se/blog/2017/08/16/sharing-state-between-steps-in-cucumberjvm-using-guice

0 голосов
/ 25 июня 2019

В Cucumber вы можете использовать picocontainer в вашем файле pom, тогда вы можете разделить общий метод "startbrowser" в одном классе.См. https://www.toolsqa.com/selenium-cucumber-framework/sharing-test-context-between-cucumber-step-definitions/

...