2015-04-14 11 views
5

Sto lavorando alla mia prima gemma Ruby e ho raggruppato cetriolo, rspec e shoulda-matches per i test. Quando eseguo RSpec, ottengo il seguente errore:test della gemma Ruby: metodo non definito `configure 'per Shoulda :: Matchers: Module (NoMethodError)

/app/my_gem/spec/spec_helper.rb:6:in `<top (required)>': undefined method `configure' for Shoulda::Matchers:Module (NoMethodError) 

Ecco il mio 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 

mio 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 

Si tratta di trovare Shoulda :: Matchers ma non la .configure metodo per qualche ragione. Sto richiedendo shoulda errato in qualche modo? Non sono sicuro se questo è correlato, ma il rspec mi sta dando anche questo avviso:

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. 

Grazie per eventuali suggerimenti!

risposta

10

Sembra che si stia tentando di utilizzare la documentazione per la versione 3.0.0.alpha di shoulda-matchers che supporta 3.0.0.alpha, ma che utilizza una versione precedente. O vedere la documentazione corretta per la versione in uso (sto cercando di indovinare 2.8.x) o aggiornare il Gemfile utilizzare 3.0.0.alpha:

gem 'shoulda-matchers', github: 'thoughtbot/shoulda-matchers' 

Poi gestita bundle install e Shoulda::Matchers.configure dovrebbe iniziare a lavorare.

+1

Grazie, avevi proprio ragione. Sto usando 2.8.0 e il blocco di configurazione non è necessario – sixty4bit

+0

è errato, mi ci è voluto un po 'per capire un errore durante l'esecuzione di installazione bundle – Katarzyna

Problemi correlati