gpt4 book ai didi

ruby-on-rails - Rspec SimpleCov NoMethodError

转载 作者:太空宇宙 更新时间:2023-11-03 16:29:15 25 4
gpt4 key购买 nike

当通过 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: 进行测试。

最佳答案

shoulda库未包含在您的 simplecov 运行中。

simplecov 是否在与 :test 不同的环境中运行?如果 shoulda gem 仅位于 Gemfile 的 :test 组中,这可能会使它无法加载。

您如何将 simplecov 包含在您的 spec_helper 中?是这样的吗?

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

作为 spec_helper.rb第一行

你的 Gemfile 中有这样的东西吗?

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 格式化程序可能并不重要。

关于ruby-on-rails - Rspec SimpleCov NoMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18749475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com