1

rspec-rails を使用して Rails アプリをテストしており、特にモデルの場合は shoulda-matcher を使用しています。テストをローカルで実行するとすべて正常に実行されますが、Team City サーバーにデプロイすると、shoulda-matchers によって提供されるはずのメソッドが見つからないため、shoulda-matchers を使用するすべてのテストが失敗します。たとえば、ある仕様は次のように始まります。

require 'spec_helper'
describe Availability do
    it { should belong_to(:user) }
end

この仕様はエラーで失敗します:

NoMethodError: undefined method `belong_to' for #<RSpec::Core::ExampleGroup::Nested_423:0x000000199a6348>

TeamCity がテストを実行する方法は少し異なりますが、この gem のロードがどのように妨げられるのかわかりません。

関連している可能性がありますが、いくつかの capybara-webkit テストも次のように失敗します。

Capybara::DriverNotFoundError: no driver called :webkit was found, available drivers: :rack_test, :selenium

shoulda-matchers、capybara、および capybara-webkit gem はすべて、'test' グループの Gemfile にあります。rspec-rails は開発グループとテスト グループにあります。

4

1 に答える 1

2

テストサーバーが開発環境ではなくテスト環境で実行されていますか? shoulda-matchers を test/dev グループに入れてみてください

于 2013-03-26T07:16:16.403 に答える