0

おそらく私が見逃しているものがありますが、次のrakeタスクを設定しています:

namespace :test do
  Rake::TestTask.new(:acceptance => "test:prepare") do |t|
    t.libs << "test"
    t.pattern = 'test/acceptance/**/*_test.rb'
  end
end

受け入れテストに Capybara を使用しているため、test_helper.rbファイルに次のコードも含めました。

DatabaseCleaner.strategy = :truncation

class ActionDispatch::IntegrationTest
  # Make the Capybara DSL available in all integration tests
  include Capybara::DSL

  # Stop ActiveRecord from wrapping tests in transactions
  self.use_transactional_fixtures = false

  # Always use Selenium
  Capybara.default_driver = :selenium

  teardown do
    DatabaseCleaner.clean       # Truncate the database
    Capybara.reset_sessions!    # Forget the (simulated) browser state
    Capybara.use_default_driver # Revert Capybara.current_driver to      Capybara.default_driver
  end
end

残念ながら、実行するrake test:acceptanceと、rake が というおもちゃのテストを実行しようとすると、次のエラーが発生しますselenium_test.rb

.../test/acceptance/selenium_test.rb:1:in `<top (required)>': uninitialized constant ActionDispatch (NameError)

ファイルselenium_test.rbtest/acceptanceアプリのフォルダにあります。に移動するとtest/functional、問題なく動作します。

どんな助けでも大歓迎です。

4

2 に答える 2

0

テストを実行する前に、Rails 環境を要求する必要があります。require を先頭に追加する必要がありますtest_helper.rb

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

もちろん、../実行する必要がある量は、テスト フォルダーの深さによって異なります。config フォルダーは、アプリケーションのルートにあります。

于 2013-01-03T15:25:59.043 に答える