簡體   English   中英

如何調試隨機黃瓜故障?

[英]How to debug random cucumber failures?

我在黃瓜測試套件方面遇到了問題,我想不出任何調試方法。

我們擁有相當大的黃瓜功能套件,它們都通過了開發機器。 問題是,當我們在ci服務器上運行整個黃瓜套件時,有兩種情況都失敗了,並且單獨運行它們會使它們在嘗試填充表單時(顯然)隨機通過並失敗(顯然)。頁)。 由於隨機失敗,我認為這是ajax請求的計時問題,但事實並非如此,因為增加真正的大睡眠(嘗試從1到60秒進行所有操作)不會改變任何事情。 該場景更加有趣,因為還有另外3個場景以相同的順序運行在第一個場景上失敗的場景,並且這些場景通過了,除非我刪除了第一個場景,在這種情況下,第一個運行這些步驟的場景是一個失敗的。

是否有任何技巧可以調試這種黃瓜怪異現象? 功能(請記住,這些情況總是在開發機器上進行,問題出在ci服務器中)。

謝謝!

我也有機會調試只能在CI上重現的間歇性測試失敗。 以我的經驗,這個問題總是歸結為幾個基本原因:

  1. 前端的比賽條件。 例如,在xhr回調之前啟用輸入表單,會添加默認值。
  2. “樂觀”來自前端。 有時,前端工程師通過忽略結果來使涉及PUT / POST請求的操作更具響應性。 在這種情況下,無法讓Cucumber等待請求完成,因此針對數據庫狀態更改的測試將與應用程序競爭。
  3. 對測試裝置中不可用的資源的請求。 例如,可能阻止來自CI的對第三方API的請求。 有時,URL在測試環境中的構造不正確,尤其是在“手工”構建而不是使用Rails幫助器的情況下。

間歇性黃瓜故障總是很難調試。 不要放棄! 值得努力找出如何構建可測試的,無種族限制的前端。 您可以使用capybara-webkit調試僅CI的故障。 獲取javascript控制台輸出以在CI上打印出來,然后可以將打印品添加到javascript中以跟蹤其狀態直至測試失敗。 您還可以修改capybara-webkit來打印有關前端請求的信息。 這是一個例子: https : //github.com/joshuanapoli/capybara-webkit/commit/96b645073f7b099196c5d3da4653606e98a453e4

暫無
暫無

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

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