簡體   English   中英

在JBehave方案中步驟失敗后繼續執行

[英]Continue Execution after step fails in JBehave scenario

我在JBehave中使用Selenium Webdriver。 我的Jbehave故事包含一些場景,其中包含一些重復步驟,如以下步驟所示,並且我創建了一個通用函數來執行它們。

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()收集了它們。 Atleast JBehave應該說某些步驟失敗了。

我的問題是,即使任何一列的驗證失敗(場景中提到的步驟之一),我也想繼續在JBehave中執行。

謝謝你的幫助

我會用這種方法一步一步檢查所有列:

Scenario: 25. Validate Column from Database 

Given I open application URL 
Then I validate the following columns: "column1,column2,column3" from database

@Then("I validate the following columns: \"$columns\" from database")
public void then_i_walidate_columns_from_databale( List<String> columns){
    String columnsWithError = "";
    boolean validationResult = true;
    for( String column : columns){
        boolean validationResultOfCurrentColumn = ( null != getColumnFromDB(column));
        validationResult &= validationResultOfCurrentColumn;
        if( ! validationResultOfCurrentColumn ){
            columnsWithError += column + " ";
        }
    }
    Assert.assertTrue("The following columns don't pass the validation: " + columnsWithError, validationResult);
}

當發生錯誤時,您是否在JBehave步驟中引發異常? JBehave依靠您拋出的異常知道是否有錯誤。 我想知道ErrorCollector是否正在使用您拋出的異常,因此您的錯誤沒有到達JBehave,因此JBehave認為沒有錯誤。

默認情況下,故事運行者配置為快速失敗 ,即執行將在第一個失敗的故事處停止(但將首先完成故事中所有場景的執行)。 為了允許生成完整的故事視圖(報告失敗的故事數目 ),需要使跑步者能夠運行將ignoreFailureInStories標志設置為true的故事。

資料來源: http : //jbehave.org/reference/stable/running-stories.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM