Rspec SimpleCov NoMethodError



当通过rake运行我的rails 4 rspec套件时,一切正常,但是当尝试运行rake simplecov时,我遇到了数百个故障,所有这些都NoMethodError如下:

  1) Answer Validations
     Failure/Error: it { should validate_presence_of :text }
     NoMethodError:
       undefined method `validate_presence_of' for #<RSpec::Core::ExampleGroup::Nested_16::Nested_1:0x007faf9fb5b7c8>
     # ./spec/models/answer_spec.rb:12:in `block (3 levels) in <top (required)>'

关于为什么会发生这种情况的任何线索?我还应该提到我正在使用sqlite3 :memory:进行测试。

应该有的库没有包含在你的 simplecov 运行中。

simplecov 是否在与:test不同的环境中运行? 如果应该的 gem 仅在 Gemfile 的:test组中,则可能会使它不被加载。

您如何在spec_helper中包含 simplecov? 像这样的东西?

require 'simplecov'
require 'simplecov-rcov'
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
SimpleCov.start 'rails' if ENV['COVERAGE']

作为你spec_helper.rb的第一

您的宝石文件中有类似的东西?

group :test, :development do
  ...
  gem 'rspec-rails', '~> 2.0'
  gem 'shoulda-matchers'
end
group :test do
  gem 'simplecov'
  gem 'simplecov-rcov'
end

并像这样执行它?

$ COVERAGE=true bundle exec rake spec

这个食谱在许多项目中对我来说都非常有效。 RCov 格式化程序可能并不重要,具体取决于您的目的。

相关内容

  • 没有找到相关文章

最新更新