我有一个黄瓜框架。
我的功能文件看起来像:
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时,为什么不重新启动应用程序,请在此处输入代码
您提供的信息还不够,但我可以猜测。Background
情况在每种情况之前运行,这意味着,例如,如果scenario 1
在应用程序中的某些屏幕上失败,黄瓜将尝试在Click on app
之前进入scenario 2
。但是,如您所见,没有可单击的app
。您需要更改Click on app
的步定义,例如添加一些条件:
if (app.isVisible) {
click();
} else {
//app already launed
}
我认为您正在努力将应用程序重置为其初始状态,以便其他测试可以无缝运行,而与先前测试的结果无关。在您的示例中,请确保使用@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