2010-06-17 51 views
7

我正在處理一個尖端的rails應用程序。 Rails 3,RSpec 2,Rspec-Rails2。RCov與RSpec-2

看起來好像RSpec2不包含RSpec 1具有的spec:rcov rake任務。 (至少它還沒有)

有沒有人有運行rcov與rspec 2,或編寫自己的耙任務使這項工作有任何運氣?

+0

rspec-rails-2.0.0.rc在rspec rake文件中有這個任務。 – wesgarrison 2010-11-02 03:23:46

回答

7

嘗試傳入選項以排除gem目錄。或者因爲你的運行軌道使用軌道標誌:

desc "Run all specs with rcov" 
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t| 
    t.rcov = true 
    t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/,features\/} 
end 
+0

這正是我最終做的。謝謝。 – JoshReedSchramm 2010-07-29 00:16:00

+3

這應該住在哪裏? – Aupajo 2010-08-19 05:24:10

+1

@Aupajo:從JoshReedSchramm回答下面他有一個早期迭代的答案,他把它放在'〜/ .rvm/rubies // lib/ruby​​/gems // gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task' – wesgarrison 2010-11-02 03:20:27

0

想出了這個 -

1)打開〜/ .rvm /紅寶石// LIB /紅寶石/寶石寶石///RSpec的護欄,2.XXXXX/lib目錄/ RSpec的/導軌/任務/ rspec的在你最喜歡的編輯器中輸入任務。

2)添加這個rake任務

desc 「Run all specs with rcov」 
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t| 
    t.rcov = true 
end 

一個突出的問題。它會在我的rvm安裝文件夾和我在運行任務時所處的項目中的每個規範上運行rspec。我無法弄清楚如何排除所有這些rvm安裝測試。如果有人有一個想法,請讓我知道。

4

如果你恰巧是關於Ruby 1.9倍,我剛收到CoverMe(一rcov上下的LIB是1.9下工作)工作。 Snappy和開箱即用的RSpec - 幾乎是一個即插即用的設置。它只是在你每次運行rake:spec時默默地做你的/覆蓋的東西。以爲我會提及它,因爲我正在運行1.9.2preview3上我最尖銳的東西,如果你正在使用它,可能會遇到1.9個問題。

2

我們在工作中使用simplecov,並發現它很容易和有效。我發現它比直接修改rspec源更清潔,尤其是當你有CI服務器擔心時。

+1

今天(8/21/2012)這幾乎是正確的答案。當時提出這個問題rspec2是新的,simplecov真的不存在。 – JoshReedSchramm 2012-08-22 00:37:43

+2

simplecov僅適用於1.9。*。rcov僅適用於1.8。*。如果您使用1.8,您無法真正使用simplecov – yiwen 2012-10-26 21:07:57