我正在使用带有sqlite的Rails 4.2.3。我有一个简单的'assert true'单元测试,使用内置的ActiveSupport :: TestCase。
db / migrate中有一次迁移。
我不确定为什么以下原因导致测试成功运行,我希望得到“待定迁移”错误:
rwc $ rake db:drop:all
rwc $ rake db:migrate:status
Schema migrations table does not exist yet.
rwc $ rake db:migrate:status RAILS_ENV=test
Schema migrations table does not exist yet.
rwc $ rake test
Run options: --seed 43484
# Running:
.
Finished in 0.011646s, 85.8671 runs/s, 85.8671 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
测试没有与数据库进行交互,但我仍然预计会因为尚未应用的迁移而出现错误。
任何人都可以解释这种行为吗?
答案 0 :(得分:0)
字面上只需阅读以下内容:
为了运行测试,您的测试数据库需要具有 目前的结构。测试助手会检查您的测试数据库 有任何待定的迁移。如果是这样,它会尝试加载你的 db / schema.rb或db / structure.sql进入测试数据库。如果是迁移 仍在等待,将引发错误。通常这表明 您的架构未完全迁移。运行迁移 开发数据库(bin / rake db:migrate)将带来架构 最新的。
参考:http://guides.rubyonrails.org/testing.html#rails-sets-up-for-testing-from-the-word-go