7

我正在使用一些最前沿的 Rails 应用程序。Rails 3、RSpec 2、Rspec-Rails2。

似乎 RSpec2 不包括 RSpec 1 具有的 spec:rcov rake 任务。(至少现在还没有)

有没有人有幸使用 rspec 2 运行 rcov,或者编写自己的 rake 任务来完成这项工作?

4

4 回答 4

7

尝试传入选项以排除 gem 目录。或者因为您的运行轨道使用 rails 标志:

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
于 2010-07-27T03:24:54.590 回答
4

如果你碰巧在 Ruby 1.9x 上,我刚刚让CoverMe(一个在 1.9 下工作的 rcov-ish 库)工作。Snappy 并且使用 RSpec 开箱即用——几乎是即插即用的设置。每次运行 rake:spec 时,它都会默默地执行 /coverage 的工作。我想我会提到它,因为我在我最前沿的东西上运行 1.9.2preview3,如果你使用它,你可能会遇到一些 1.9 问题。

于 2010-08-19T19:51:56.467 回答
2

我们在工作中使用simplecov,发现它既简单又有效。我发现它比直接修改 rspec 源代码更干净,尤其是当您需要担心 CI 服务器时。

于 2012-08-19T22:20:28.750 回答
0

想出了这个-

1) 在您喜欢的编辑器中打开 ~/.rvm/rubies//lib/ruby/gems//gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task。

2) 添加这个 rake 任务

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

一个突出的问题。它在我的 rvm 安装文件夹和我运行任务时所在的项目中的每个规范上运行 rspec。我不知道如何排除所有这些 rvm 安装测试。如果有人有想法,请告诉我。

于 2010-06-18T13:11:55.587 回答