0

何らかの理由で、私のチームは受け入れテストが spec/requests ディレクトリに存在することを望んでいません。代わりに、spec ディレクトリ構造の外に存在する、acceptance と呼ばれる新しいディレクトリに配置することを望んでいます。それで、私の最初の質問は、RSpec、Capybara、および capybara-webkit を使用して、これは可能ですか?

これが私のacceptance_spec_helper.rbファイルです


require 'rubygems'

ENV["RAILS_ENV"] ||= 'test'

require File.expand_path("../../config/environment", __FILE__)

require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rspec'
require 'capybara/rails'

# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

# Capybara.javascript_driver = :webkit

RSpec.configure do |config|

  config.include RSpec::Rails::RequestExampleGroup, :type => :request, :example_group => {
    :file_path => config.escaped_path(%w[acceptance])
  }

  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  config.fixture_path = "#{::Rails.root}/spec/fixtures"

  # If you're not using ActiveRecord, or you'd prefer not to run each of your
  # examples within a transaction, remove the following line or assign false
  # instead of true.
  config.use_transactional_fixtures = true

  # If true, the base class of anonymous controllers will be inferred
  # automatically. This will be the default behavior in future versions of
  # rspec-rails.
  config.infer_base_class_for_anonymous_controllers = false
end

ただし、テストのためにアプリケーションが実際に実行されているようには見えません。

そしてお願いしますが、テストを spec/requests ディレクトリに戻せとだけ言うのはやめてください。それが唯一の選択肢である理由を裏付ける非常に強力な議論はありません。

4

1 に答える 1

0

にスペックがありspec/acceptance、 でタグ付けし:acceptance => true、別の rake タスクで実行した場合と同様のことを行いましたrake spec:acceptance

この要点を確認してください - https://gist.github.com/3858851

それが役に立てば幸い

于 2012-10-09T13:40:03.510 に答える