当我在本地运行时,rspec
所有规格都通过了。
当我在Docker或CI中运行所有规范时,它们都失败了。但是,当我单独运行它们时,它们会通过。另一件要提的事情是,每次我有不同的规格失败时。
环境设置:
ruby 2.2.2
rails 4.2.0
postgres 9.3
(using ActiveRecord)
gems:
database_cleaner 1.4.1
fabrication 2.14.0
faker 1.4.3
问题可能出在database_cleaner
设置上。
# database_cleaner.rb
RSpec.configure do |config|
config.before(:suite) do
DatabaseCleaner.clean_with(:deletion)
Rake::Task["create_mailers"].invoke
end
config.around(:each) do |example|
DatabaseCleaner.strategy = example.metadata[:js] ? :deletion: :transaction
DatabaseCleaner.cleaning do
example.run
end
end
config.after(:each) do
Capybara.reset_sessions!
DatabaseCleaner.clean
end
end
所以我的问题是,如何让我的测试在Docker和CI中通过?