如何使场景独立

问题描述 投票:0回答:2

我有一个黄瓜框架。

我的功能文件看起来像:

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时,为什么不重新启动应用程序,请在此处输入代码

android cucumber appium gherkin
2个回答
0
投票

您提供的信息还不够,但我可以猜测。Background情况在每种情况之前运行,这意味着,例如,如果scenario 1在应用程序中的某些屏幕上失败,黄瓜将尝试在Click on app之前进入scenario 2。但是,如您所见,没有可单击的app。您需要更改Click on app的步定义,例如添加一些条件:

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

0
投票

我认为您正在努力将应用程序重置为其初始状态,以便其他测试可以无缝运行,而与先前测试的结果无关。在您的示例中,请确保使用@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
}
}

进一步references

© www.soinside.com 2019 - 2024. All rights reserved.