I'm working on my first Ruby gem and have bundled cucumber, rspec and shoulda-matches for testing. When I run rspec, I get the following error:
/app/my_gem/spec/spec_helper.rb:6:in `<top (required)>': undefined method `configure' for Shoulda::Matchers:Module (NoMethodError)
Here is my gemspec:
# my_gem.gemspec
...
Gem::Specification.new do |spec|
...
...
spec.add_development_dependency "activemodel"
spec.add_development_dependency "bundler", "~> 1.8"
spec.add_development_dependency "cucumber"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec"
spec.add_development_dependency "shoulda-matchers"
end
My spec_helper.rb
:
require 'my_gem'
require 'pry'
require 'shoulda/matchers'
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :rspec
# with.library :active_record
with.library :active_model
# with.library :action_controller
# Or, choose all of the above:
# with.library :rails
end
end
It's finding Shoulda::Matchers but not the .configure
method for some reason. Am I requiring shoulda
wrong somehow? Not sure if this is related, but the rspec is also giving me this warning:
WARN: Unresolved specs during Gem::Specification.reset:
json (>= 1.7.7, ~> 1.7)
minitest (~> 5.1)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
Thanks for any pointers!
It looks like you are trying to use the documentation for the 3.0.0.alpha version of shoulda-matchers which supports 3.0.0.alpha
, but are using an older version. Either see the correct documentation for the version you are using (I'm guessing 2.8.x) or update your Gemfile to use 3.0.0.alpha
:
gem 'shoulda-matchers', github: 'thoughtbot/shoulda-matchers'
Then run bundle install
and Shoulda::Matchers.configure
should start working.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With