我对TDD非常陌生,并且选择使用上面提到的Gems。我想我已经正确设置了它,因为我可以运行我的测试。但是,我不能弄清楚如何从db/seeds.rb填充我的测试数据库。当我在终端调用使用Minitest-rails,水豚,水豚-webkit和Rails测试数据库播种4
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文件
ProgramIndustry.delete_all
ProgramIndustry.create([
{ name: 'Accounting and finance'},
{ name: 'Banking'},
{ name: 'Construction'},
{ name: 'Education'}
])
为什么数据库不能与seeds.rb填充(从使用人工播种耙时有效)当测试开始?
呜呼!谢谢你这个作品。是的,我显然不知道我在做什么。 :D –
我有同样的问题,但我没有使用DatabaseCleaner,我们没有使用灯具。我已经尝试了数百万的东西。我正在迅速接近放弃测试分贝的点:P – jaydel
@jaydel联系我,我可能会提供帮助。 – blowmage