【问题标题】:RCov with RSpec-2带有 RSpec-2 的 RCov
【发布时间】:2011-03-04 18:34:15
【问题描述】:

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

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

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

【问题讨论】:

  • rspec-rails-2.0.0.rc 在 rspec rake 文件中有这个任务。

标签: rspec rcov


【解决方案1】:

尝试传入选项以排除 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

【讨论】:

  • 这正是我最终要做的。谢谢。
  • 这应该住在哪里?
  • @Aupajo:从下面的 JoshReedSchramm 回答中,他有这个答案的早期迭代,他把它放在~/.rvm/rubies//lib/ruby/gems//gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task
  • 好吧,如果我无法更改宝石内容怎么办?我需要在 Jira-Bamboo 构建服务器上运行测试覆盖率:(
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 今天(2012 年 8 月 21 日)这几乎是正确的答案。在提出这个问题时,rspec2 是新的,simplecov 确实还不存在。
    • simplecov 仅适用于 1.9.*。 rcov 仅适用于 1.8.*。如果你在 1.8 上,你就不能真正使用 simplecov
    【解决方案4】:

    想出了这个 -

    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 安装测试。如果有人有想法,请告诉我。

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多