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在開發和測試組中。
您確定您的測試服務器正在運行測試環境而不是開發環境?嘗試在測試/ dev組中放入shoulda-matchers – John 2013-03-24 22:04:48
就是這樣,John。謝謝。把你的評論變成答案,我會接受它。 – sockmonk 2013-03-25 18:59:59