2013-02-07 29 views
1

我在spec文件夾兩次測試,它們都是綠色的,當我單獨運行它們:RSpec的失敗套件,經過測試單獨

rspec spec\temp_stab_target_spec.rb 
32 examples, 0 failures 

rspec spec\mock_spec.rb 
10 examples, 0 failures 

但是當我運行所有的人:

rspec spec 
42 examples, 32 failures 

spec\mock_spec.rb的所有內容都已通過,並且spec\temp_stab_target_spec.rb的所有內容都不是

我做了一些調查,發現我遇到的問題與相同。當我檢查ARGV時,它包含spec。我嘗試着使用before(:each) { ARGV.clear },但無濟於事。

此外,當我檢查ARGV剛剛運行rspec spec\temp_stab_target_spec.rb,它是空的。

有人可以解釋發生了什麼或幫助我解決它嗎?我將要擴展套件,我希望能夠一次運行所有測試,而不是單獨運行。

萬一它是中肯的,我正在運行ruby 1.8.7 (2012-02-08 patchlevel 358) [i386-mingw32]rspec 2.12.2

在此先感謝

+2

你可以減少你的代碼到一個最小的例子(例如,每個文件中仍然重現行爲的單個規範)併發布? –

+0

小提示:給出一些Rspec示例將增加您尋找答案的機會。 –

回答

0

不要在您的測試中使用對ARGV的引用!

將類似的東西填入您正在測試的代碼中。使用構造函數,工廠方法或任何有助於從難以測試的部分去除代碼的方法。