2012-06-25 80 views
0

我一直在玩弄自動測試試圖使其工作一整天..但我有一些問題不工作...RSpec的自動測試循環與失敗,當異常增加

我一直以下https://github.com/rspec/rspec/wiki/autotest,我與運行:

  • 的Ruby 1.9.3-P194
  • rspec的2.10.0
  • ZenTest 4.8.1

我也創建了一個.rspec文件。

因此,使用此設置,我運行自動測試,它的工作原理 - 我的測試運行,它通過,萬歲!當我在測試中遇到失敗時,例如false.should == true,那麼測試開始循環,一遍又一遍。

發生什麼事是它是一個集成測試,我正在寫入一個sqlite數據庫。如果我運行find . -mmin -1,那麼我可以看到我的db文件夾已經更改 - 所以我認爲這是問題所在。

所以我編輯.autotest並添加以下內容:

Autotest.add_hook :initialize do |autotest| 
    %w{db}.each { |exception| autotest.add_exception(exception) } 
    false 
end 

但現在當我運行自動測試,它只是說以下內容:

loading autotest/rspec2 

,就是這樣,它不會做任何東西了。此前的產量爲:

loading autotest/rspec2

/home/me/.rbenv/versions/1.9.3-p194/bin/ruby -rrubygems -S'/home/me/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rspec-core-2.10.1/exe/rspec' ``--tty '/home/me/Workspace/myproject/spec/integration/db/lead_spec.rb'

,然後它會運行我的測試,並顯示結果...

任何人都知道什麼可以怎麼回事?這是非常令人沮喪的,我覺得我已經走到了路障......

感謝您的幫助!

+0

也許%W {}分貝是符合規範的名字嗎?試着讓它更具體。 – zetetic

回答

0

自動測試檢查定義的例外是否匹配文件名的任何部分。你的規範有db在它的路徑,所以它被自動測試忽略。

如果你想忽略db文件夾,然後執行以下操作:

Autotest.add_hook :initialize do |a| 
    a.add_exception %r{^\./db} 
end