我試圖配置自動測試,以便當我運行測試套件並且有失敗的測試時,自動測試會停止測試並等待我在再次測試之前進行更改。使用我當前的配置,自動測試在遇到失敗的測試時會不斷進行測試,使其處理時有點麻煩(必須在每次遇到失敗測試時都要終止並停止自動測試服務器)。Zentest - 如何在紅色時停止自動測試
我正在使用RSpec,Zentest和Spork的Rails應用程序。
相關Gem版本:
autotest (4.4.6)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
rspec-rails (2.6.1)
spork (0.9.0.rc8)
ZenTest (4.5.0)
我.autotest文件:
module Autotest::Notify
def self.notify title, msg, img, pri='low', time=3000
`notify-send -i #{img} -u #{pri} -t #{time} '#{msg}'`
end
Autotest.add_hook :ran_command do |autotest|
results = [autotest.results].flatten.join("\n")
output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/)
folder = "~/.autotest_icons/"
if output =~ /[1-9]\d*\sfailures?/
notify "FAIL:", "#{output}", folder+"failed.png", 'critical', 10000
elsif output =~ /[1-9]\d*\spending?/
notify "PENDING:", "#{output}", folder+"pending.png", 'normal', 10000
else
notify "PASS:", "#{output}", folder+"passed.png"
end
end
end
注:我的大部分.autotest文件是讓彈出窗口在linux工作顯示,如果我的測試都通過或失敗。
我一直在尋找這個問題的答案一段時間,並沒有運氣,我發現很難得到我的手在一些很好的文檔Autotest。我一直在盯着Zentest的RDoc很長一段時間,我也必須錯過一些東西。
任何幫助,鏈接到例子等,將不勝感激。
我想知道你的'.autotest'文件是否在做一些使自動測試遞歸的功能。我會盡量一次刪除一個可能的原因。例如,從組合中刪除'spork',運行帶有已知錯誤的自動測試並查看它是否繼續。如果是這樣,請將'.autotest'文件暫時移到某個地方,並在沒有'.autotest'文件的情況下有效運行,然後重試。每當我遇到非顯而易見的問題時,我都會試着走邏輯鏈並做小的修改,直到能夠隔離問題。 – Midwire
PS:在給定的代碼更改後,自動測試不應該繼續運行測試。它應該運行受影響的測試,報告結果(綠色或紅色),然後停止並等待更多更改。你的配置中有東西導致這種異常。 – Midwire
感謝您的迴應。說實話,這個問題似乎是相當隨意的。我現在一直在使用相同的配置運行一段時間,自動測試只會在偶爾發生紅色(可能是1/10次)時重新運行測試。我無法真正找到我正在運行的測試與奇怪的自動測試行爲之間的關係,但我會繼續嘗試。感謝您的建議,如果我最終得到明確的答案,那麼我會發布它。我現在面臨的主要問題是,每次我認爲我已經修復它時,它最終的表現會不那麼經常。 –