2013-03-19 37 views
1

我使用rspec-rails测试我的rails应用程序,特别是对于模型,shoulda-matchers。当我在本地运行它们时,测试都运行良好,但是当我部署到Team City服务器时,使用shoulda-matchers的每个测试都会失败,因为它找不到应该由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的运行测试的方式略有不同,但我看不出它如何防止这种情况从被加载的宝石。

可能有关,我的几个水豚,WebKit的测试也失败:

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

的早该-匹配器,水豚,水豚和 - WebKit的宝石都在我的Gemfile“测试”组中; rspec-rails在开发和测试组中。

+0

您确定您的测试服务器正在运行测试环境而不是开发环境?尝试在测试/ dev组中放入shoulda-matchers – John 2013-03-24 22:04:48

+0

就是这样,John。谢谢。把你的评论变成答案,我会接受它。 – sockmonk 2013-03-25 18:59:59

回答

2

你确定你的测试服务器运行在测试环境而不是开发环境?尝试在测试/开发组中放置应用程序匹配器