我正在使用rspec-rails测试我的rails应用程序,特别是对于模型,应该是匹配器。当我在本地运行它们时,测试都运行良好,但是当我部署到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-matcher,capybara和capybara-webkit gems都在我的'test'组的Gemfile中; rspec-rails在开发和测试组中。
答案 0 :(得分:2)
您确定您的测试服务器是在测试环境中运行而不是在开发环境中运行吗?尝试将shoulda-matchers放入测试/开发组