【发布时间】:2013-03-08 17:29:21
【问题描述】:
我正在使用 rspec-rails 测试我的 rails 应用程序,尤其是对于模型,应该使用 shoulda-matchers。当我在本地运行测试时,它们都运行良好,但是当我部署到我们的 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 都在我的 Gemfile 中的“test”组中; rspec-rails 在开发和测试组中。
【问题讨论】:
-
你确定你的测试服务器是在测试环境而不是开发环境中运行吗?尝试将 shoulda-matchers 放在 test/dev 组中
-
就是这样,约翰。谢谢。把你的评论变成答案,我会接受的。
标签: ruby-on-rails continuous-integration teamcity