我使用JBehave與硒和寧靜,我有3個場景。我想要逐個運行場景。如果場景通過,則運行第二個場景。如果場景兩遍,則運行第三個場景。如果情況一失敗,那麼它不應該運行任何其他情況。我如何實現這一目標?只有當第一個通過JBehave運行第二個方案
1
A
回答
1
您的場景應該彼此獨立,並且在一種情況下可以完全表示一個目標。 BDD中的鏈接場景是一種反模式,應該避免。
接下來的問題是爲什麼你應用功能測試失敗的快速策略。這需要重新考慮,以確定您的情況是否是一個完善的方法。雖然快速失敗是部署管道的常態,但對於自動化功能測試,特別是在使用BDD進行功能驅動開發期間,這不是一種好方法。爲自動化功能測試提供故障安全策略是一種更好的方法。我建議你完成所有測試。這通常會提供更多的價值。它將避免早期失敗的測試,從而掩蓋可能更嚴重的失敗測試或測試,以應對更重要或有價值的功能。一份全面的測試報告可以使整改工作成爲優先事項。
如果所有三種情況的故障觸發都是常見的,則使用共同的先決條件步驟。例如Given the customer is authorised
。然後簡單地保留每個場景的前提條件。
如果失敗的觸發因素是環境因素,請在賽跑者中使用鈴聲測試或使用適當的@Before測試鉤。例如LDAP或數據庫可用。然後使用每個功能或場景來測試這個假設。
如果這些都不適用,您將需要使用您正在使用的場景的一些示例詳細說明您的要求。
0
您可能會使用受到破壞的異常,但JBehave(以及一般的BDD場景)實際上並不打算以這種方式使用 - 每個場景都應該是獨立的。
+0
謝謝約翰。現在我意識到Scenario應該是獨立的。 – Neela
相關問題
- 1. Awk在第一個圖案和第二個圖案之間打印線條,其中第二個圖案出現在第一個圖案的上方和下方
- 2. TestNG.java.lang.NullPointerException當運行第二個@Test
- 3. jQuery驗證火第二種方法,只有當第一個是真
- 4. 如何根據第一個過程的結果運行第二個cURL過程?
- 5. JS不讀第一個ID只有第二個
- 6. 通過第一個值獲取元組的第二個值
- 7. 的Global.asax第二通過同一個IP
- 8. 針對第一個結果運行第二個搜索
- 9. 第二個jquery「chunk」沒有運行
- 10. Jasmine-Node只運行第一個測試
- 11. PHP while while循環,第二個循環只運行一次
- 12. 第一次關閉時運行第二個活動
- 13. CPropertySheet只顯示第二個
- 14. 塊只有在第二個參數
- 15. 對第一個grep返回的每個字符串運行第二個grep
- 16. 第一個C#第二個表格
- 17. 第一個和第二個xml節點
- 18. 從第二個ViewController到第一個ViewController
- 19. 第一個TextView重疊第二個,Android
- 20. 通過第二場
- 21. 通過點擊第一個網站中的按鈕在第二個網站上運行jQuery
- 22. 通過MDX的第二個MAX
- 23. 打印,如果只重複第二次節點或只有第一個XSLT
- 24. 不能運行第二個警報
- 25. 第二個jQuery函數無法運行
- 26. 無法運行第二個任務
- 27. 第二個BroadCast接收器不運行
- 28. 在第二個AppDomain中運行服務
- 29. 爲什麼第二行中的第一個框不在第二行?
- 30. 用於循環跳過第一個和第二個元素
謝謝馬丁。實際上,這隻能是一種情況,但這是一個很大的情況。所以我想我可以分開它。現在我意識到情景應該是獨立的。現在我正在寫一個大場景。非常感謝您的幫助。 – Neela