我正在使用一些最前沿的 Rails 应用程序。Rails 3、RSpec 2、Rspec-Rails2。
似乎 RSpec2 不包括 RSpec 1 具有的 spec:rcov rake 任务。(至少现在还没有)
有没有人有幸使用 rspec 2 运行 rcov,或者编写自己的 rake 任务来完成这项工作?
尝试传入选项以排除 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
如果你碰巧在 Ruby 1.9x 上,我刚刚让CoverMe(一个在 1.9 下工作的 rcov-ish 库)工作。Snappy 并且使用 RSpec 开箱即用——几乎是即插即用的设置。每次运行 rake:spec 时,它都会默默地执行 /coverage 的工作。我想我会提到它,因为我在我最前沿的东西上运行 1.9.2preview3,如果你使用它,你可能会遇到一些 1.9 问题。
我们在工作中使用simplecov,发现它既简单又有效。我发现它比直接修改 rspec 源代码更干净,尤其是当您需要担心 CI 服务器时。
想出了这个-
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 安装测试。如果有人有想法,请告诉我。