2016-08-10 1 views
1

Ich erstelle ein wenig API mit Rails 5.0 nach diesem Tutorial http://apionrails.icalialabs.com/book/frontmatterWie konfiguriert man RSpec, um Spezifikationen im lib-Ordner zu finden?

Ich versuche, einen Test in app/config/lib gelegen zu laufen, aber RSpec wird den Test nicht finden.

Ich habe versucht, config.autoload_paths << Rails.root.join('lib') oder config.autoload_paths += %W(#{config.root}/lib) zu app/config/application.rb hinzuzufügen.

Dies ist mein Code:

$ /app/config/application.rb 

#required files go here, deleted for clarity. 

Bundler.require(*Rails.groups) 

module MarketPlaceApi 
    class Application < Rails::Application 

    # don't generate RSpec tests for views and helpers 
    config.generators do |g| 
     g.test_framework :rspec, fixture: true 
     g.fixture_replacement :factory_girl, dir: 'spec/factories' 
     g.view_specs false 
     g.helper_specs false 
     g.stylesheets = false 
     g.javascripts = false 
     g.helper = false 
    end 

    config.autoload_paths += %W(#{config.root}/lib) 
    end 
end 

-Test

$ app/config/lib/spec/test_spec.rb 

require 'spec_helper' 

describe ApiConstraints do 
    #test goes here 
end 

Wie kann ich den lib Ordner hinzufügen, so RSpec die Tests darin befindlichen läuft?

Vielen Dank im Voraus.

Antwort

1

RSpec sucht nicht nach Tests in autoload_paths. Wenn Sie rspec oder rake spec ohne Argumente ausführen, sucht RSpec standardmäßig im Verzeichnis spec. Wenn Sie Daten in einem anderen Verzeichnis ausführen mögen, geben Sie das Verzeichnis zu rspec als Argument:

rspec app/config/lib/spec 

Allerdings ist es die universale Konvention Ihre Angaben im spec Verzeichnis, getrennt von Ihrem Code zu halten in app und lib , also verschiebe ich deine Daten auf spec/lib. RSpec findet sie dann ohne zusätzlichen Aufwand.

Verwandte Themen