Je cours Rails 4, en essayant de mettre en place un test d'intégration avec Rspec et Capybara. Je veux mettre en place la garde pour exécuter le 'test de zeus'. chaque fois que je fais des changements. Le problème est, à chaque fois que quelque chose forment le DSL Capybara est appelé, ou chaque fois que je tente d'utiliser les aides de route, je suis erreurs donné comme ceci:Garde ne charge pas Capybara DSL
undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_1:0x007f55682c6d60>
Si je remplace root_path avec «/» il se:
undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_1:0x007f556833bbb0>
Si je viens de lancer 'rspec spec.' ou 'test de zeus'. ça fonctionne bien.
J'ai essayé d'enlever le 'test de zeus de' cmd: '. option de mon Guardfile, mais j'ai les mêmes problèmes. Il semble clair que le problème est avec Guard et sans rapport avec zeus.
Dans mon Gemfile:
group :development, :test do
gem 'capybara'
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'guard-rspec', require: false
gem 'better_errors'
gem 'binding_of_caller'
end
aide Spec:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'factory_girl_rails'
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
config.order = "random"
end
Spec Je suis en train de courir:
require 'spec_helper'
describe "HomePage" do
describe "Root page" do
before { visit root_path }
it "works!" do
page.status_code.should be(200)
end
it 'contains bottom nav buttons' do
page.should have_link 'How it works'
page.should have_link 'Customer Service'
page.should have_link 'Terms of Service'
page.should have_link 'Contact Us'
end
end
end
Merci, mais j'ai mentionné dans ma question que ça fonctionne bien en dehors de Guard. J'ai essayé ceci aussi bien que config.include Capybara :: DSL, mais aucun n'a aidé le travail de garde. – Joeman29