我对 TDD 很陌生,并选择使用上述 Gems。我认为我已经正确设置它,因为我可以运行我的测试。但是,我无法弄清楚如何从 db/seeds.rb 填充我的测试数据库。当我调用
rake db:seed RAILS_ENV=test
在终端中,我可以通过 PGAdmin 看到在数据库中创建的行。但是,当我使用以下内容运行测试时
rake minitest:all
之后数据库最终变为空白,并且在我保存屏幕截图的测试中,数据库中的项目不会像我在开发时那样出现在前端。
我的 test_helper.rb 包含以下内容。
ENV["RAILS_ENV"] = "test"
require File.expand_path("../../config/environment", __FILE__)
require "rails/test_help"
require "minitest/rails"
require 'minitest/rails/capybara'
require 'minitest/focus'
require 'minitest/colorize'
Capybara.javascript_driver = :webkit
class ActiveSupport::TestCase
fixtures :all
DatabaseCleaner.strategy = :transaction
class MiniTest::Spec
before :each do
Rake::Task["db:seed"].invoke
DatabaseCleaner.start
end
after :each do
DatabaseCleaner.clean
end
end
end
对于一些额外的背景,我的 db/seeds.rb 文件(当使用 rake 手动播种时有效)
ProgramIndustry.delete_all
ProgramIndustry.create([
{ name: 'Accounting and finance'},
{ name: 'Banking'},
{ name: 'Construction'},
{ name: 'Education'}
])
为什么测试开始时数据库不会填充种子.rb?