2017-10-19 151 views
1

我有一個參數一個故事:參數化JBehave測試

Given save in the <fileName> the data from <sqlQuery> 
Then... 

Examples: 
fileName |sqlQuery 
file.txt |query1 

我跑我在特定的環境中測試使用Maven -Denvironment=DEV。 現在我想使用-Denvironment=UAT在UAT上運行這個測試,但問題是sqlQuery是不同的。如何在java代碼中指示如果-Denvironment=DEV然後使用query1但是如果-Denvironment=UAT然後使用JBEHAVE故事使用query2?

有沒有人幫我?

+0

最簡單的答案是你寫另一個故事。複雜的答案是你要麼使用過濾器註釋和/或改變你的底層代碼。 –

回答

0

在我看來,最簡單最有說服力的方法是直接在故事/場景 中爲每個環境提供不同的參數,並根據環境在java代碼中選擇合適的參數。

我們在3種測試環境中使用這種方法:DEV,UAT,PRE,它對我們很好。
當故事失敗時,您不需要深入挖掘日誌或實現以查找使用哪個參數值,在JBehave報告中可以看到所有內容。

同樣改變參數更容易,測試者只是改變了故事,他不需要查看代碼中的實現。

Given save in the <fileName> the data from the query: 
- DEV:<DevSqlQuery> UAT:<UatSqlQuert> PREPROD:<PreSqlQuery> 
Then... 

Examples: 
|fileName |DevSqlQuery|UatSqlQuery|PreSqlQuery| 
|file.txt |query1  |query2  |query3  |