当我运行rspec
localy时,所有规格都会通过。
当我在 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 ?