【发布时间】:2014-10-23 02:39:47
【问题描述】:
我正在使用 Selenium Webdriver 和 JBehave。我的 Jbehave Story 包含一些场景,其中包含一些重复步骤,如下面的步骤所示,我创建了一个通用函数来执行它们。
Scenario: 25. Validate Column from Database
Given I open application URL
And I login with username "username1" and password "password1"
Then I validate the "column1" from database
Then I validate the "column2" from database
Then I validate the "column3" from database
Then I Logout of the Portal
这是我从数据库中验证列的常用功能
@Then("I validate the \"$column\" from database")
public void validateColumnFromDB(String column)
{
if(column.equals("column1"))
getColumnFromDB(propertiesConfiguration.getString("column1"));
else if(column.equals("column2"))
getColumnFromDB(propertiesConfiguration.getString("column2"));
else if (column.equals("column3"))
getColumnFromDB(propertiesConfiguration.getString("column3"));
}
我使用了 Junit ErrorCollector(),但在执行后,JBehave 说“所有测试都通过了”,即使有一些失败并且 ErrorCollector() 收集了它们。至少 JBehave 应该说某些步骤失败了。
我的问题是我想在 JBehave 中继续执行,即使在任何一列的验证失败后(场景中提到的步骤之一)。
感谢您的帮助
【问题讨论】:
-
您不需要在
validateColumnFromDB中使用断言来检查是否成功检索了值,或者这是在getColumnFromDB(..)中完成的 -
是的,断言在
getColumnFromDB()完成 -
显示您的嵌入器配置。你使用 jbehave-junit-runner 吗?
标签: java selenium-webdriver jbehave