Как сделать сценарии независимыми - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть фреймворк с огурцом.

Мой файл объектов выглядит следующим образом:

Feature: Test
  Background: Launch app
     Given Click on app
     And app is opened

  Scenario: scenario 1
     When click on blabla
     Then see blabla

  Scenario: scenario 2
     When click on qwert
     Then see qwert

Если сценарий 1 завершился неудачей на шаге шага, то он переходит к сценарию 2, но не удался нашаг от фона "И приложение открыто". Почему бы не перезапустить приложение, когда перейдите к сценарию 2. введите код здесь

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Я думаю, вы пытаетесь вернуть приложение в исходное состояние, чтобы другие тесты работали независимо от результатов предыдущих тестов. В своем примере убедитесь, что вы закрыли / убили свое приложение с помощью ловушки @After. Примерно так.

public class Hooks{
static WebDriver driver;

@Before
public void beforeHook(Scenario scenario){
 driver = new ChromeDriver(); //initialize with capabilities for your webapp/mobile app respectively.
}

@After
public void afterHook(Scenario scenario){
   driver.quit();
}

public static void getDriver(){
return driver;
}
}

public class StepDefinitions{

@Given("click on app")
public void launchApp(){
 driver = Hooks.getDriver(); // initialize your app here
}
}

Для дальнейших ссылок

0 голосов
/ 06 ноября 2019

Предоставленной вами информации недостаточно, но я могу сделать предположение. Case Background запускается перед каждым сценарием, это означает, что если scenario 1 не удалось, например, на каком-либо экране приложения, огурец попытается Click on app до scenario 2. Но, как вы видите, app не доступно для нажатия. Вам нужно изменить определение шага Click on app, например, добавить условие:

if (app.isVisible) {
   click();
 } else {
   //app already launed
 }
...