2011-03-08 136 views
0

我有很多黃瓜功能文件,每個文件都包含很多場景。紅寶石黃瓜測試實踐

當一起運行時,其中一些失敗。 當我運行每個單獨的測試文件時,它們都會通過。 我認爲我的數據庫在每個場景之後都沒有正確清理。

什麼是正確的過程來確定是什麼導致此行爲?

+0

該訂單出現在'功能/支持/ env.rb'?:黃瓜::滑軌:: World.use_transactional_fixtures =真 – zetetic 2011-03-08 20:13:35

+0

@zetetic,是的,它似乎 – astropanic 2011-03-09 09:40:06

回答

0

這發生在我身上,原因是不同的原因和不同的時間。

有時它的一個存根或模擬是在一個情況下調用另一個情況,但只有當它們都運行時(每個都很好)。

我已經能夠解決這些問題的唯一方法是在運行足夠的測試以獲得失敗時進行調試。您可以將調試器行放入step_definitions中,或者將其調用爲一個步驟(當我調用調試器時),並將其與步驟定義相匹配,並將「調試器」作爲ruby代碼進行說明。

2

通過它的聲音,你的測試彼此依賴。你應該試着讓每個單獨的測試去完成那個單獨的測試運行所需的設置。

設置的部分應該在「給定」部分功能期間完成。 個人而言,爲了避免功能變得冗長,並使它們與寫入的業務語言保持接近,我有時會添加執行設置所需的其他步驟,並根據功能文件中的步驟調用它們。 如果這讓你感興趣

+0

我的目的是寫獨立的測試 – astropanic 2011-03-09 09:38:11