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 は開発グループとテスト グループにあります。