2016-07-27 30 views
3

我成功地使用Cucumber來處理我的基於Java的測試。黃瓜 - 如何標記預期失敗作爲已知問題?

有時這些測試會遇到迴歸問題,修復發現的問題需要時間(取決於問題優先級,可能需要數週甚至數月)。所以,我正在尋找一種方法將一些黃瓜測試標記爲已知問題。不希望這些測試失敗整個測試集,只是想標記它們,例如,在報告中用黃色表示待定。

我知道我可以爲失敗的測試指定@tag並將它們從執行列表中排除,但這不是我想要做的,因爲我仍然需要這些測試持續運行。一旦問題得到解決,適當的測試應該是綠色的,不需要額外的標籤操作。

其他一些框架提供了這樣的功能(運行測試但在失敗的情況下忽略其結果)。是否有可能使用Cucumber以某種方式執行相同的技巧?

我現在使用的最終解決方案 - 用特定標記標記已知問題,從常規輪次中排除這些測試並單獨運行它們。但這不是我相信的最佳解決方案。

任何想法讚賞。提前致謝。

+0

創建一個@known_error標記(或任何你想要調用它的標記)以應用於已知的錯誤。分兩個階段運行,其中一個排除\ @known_error,另一個僅包含\ @known_error。把它們放回去。要求第一個是綠色的,第二個要經過「畢業」考試。如果您有構建失敗的依賴關係,則僅取決於第一個結果。 –

+0

戴夫,這正是我現在所做的:)但在這種情況下,我的主要報告不包含有關已知問題的信息,我必須分別跟蹤它們。 –

回答

0

我會考慮在導致已知失敗的步驟中引發未決異常。這將允許該步驟被執行而不被遺忘。

我也會考慮重寫失敗的步驟,當發生失敗時,它會被捕獲並拋出一個未決的異常而不是實際的失敗。這意味着,如果問題得到解決並且拋出未決異常的原因消失了,那麼您就有一個傳遞套件。

我會努力工作的另一件事是不要讓一個問題變老。問題就像孩子,當他們長大後,他們越來越難以修復。在年輕時解決問題,也許幾分鐘,通常很容易。解決幾個月前的問題比較困難。

+0

感謝您的建議,托馬斯!我會盡量發揮待處理的異常,這可能會有所幫助。關於「不要讓問題變老」 - 這是一個可惜的問題,但作爲一名QA工程師,我對於爲實際問題分配優先級沒有任何影響力。我所能做的只是儘可能經常提醒,但並不能保證我的聲音會被考慮在內:) –

+0

可能發生的情況是,其他人不在乎是否有什麼事情被打破或者不聽質量保證工程師。這就是爲什麼我會努力避免它。但是如果別人不在乎,我就不會把自己打死。 –

+0

標記爲答案,因爲它確實有助於解決我描述的問題。但是,這並不意味着我開始使用它,因爲這種方法也有一些缺點。無論如何,這至少是一種新的解決方案,並且非常接近我所期待的。謝謝大家,夥計! –

0

你不應該。

我的意見是,如果你的測試失敗了,那麼你應該爲這些場景添加一個bug /任務單,並將它們添加到具有相關標記的構建狀態頁中。 您可以做的另一件事是將票號添加爲標籤,並在修復後刪除。

如果您有因故障而失敗的場景,那麼報告應該顯示,如果場景沒有完全實現,那麼最好不要運行它。

你可以做的一件事是爲這些場景添加一個特定的標記/名稱,並嘗試在之前的場景方法中獲取標記並檢查添加的特定標記/名稱並拋出未決的異常。

我建議保持這些場景運行,如果有錯誤並在狀態頁面中記錄該場景。

我認爲客戶會更好地理解,如果這些情況是紅色的,因爲他們失敗,而不是一些黃色,發生了什麼「灰色」的狀態。

如果您需要運行的狀態來觸發某個CI作業,那麼最好改變那裏的狀態。

正如我所看到的,你需要給它一個想法應該是:黃色或紅色之間的區別是什麼,等待還是失敗,你或你的客戶?,你會魔杖保持明顯的差異,並跟蹤真實狀態。

您應該在電子郵件中解決這些問題,與項目團隊和QA團隊討論這些問題,在做出最終決定後,您還應該收到客戶的反饋。