Rake 测试使用与 Hanami 不同的数据库?
Rake tests use a different database than Hanami?
我 getting started with Hanami。 (我使用不同的实体名称,我从评论开始,而不是书籍,否则我按照链接页面上的说明进行操作。)
bundle exec hanami db prepare
运行良好。 SQLite 数据库已创建。 bundle exec hanami db
运行良好
select * from reviews;
不抱怨。 bundle exec hanami server
运行良好,我可以加载 '/reviews'
,我可以用 '/reviews/new'
创建一个新的,然后我可以在列表中再次看到结果。它绝对适用于数据库。
然后是 bundle exec rake test
,它会抛出类似
的错误
9) Error:
Add a review#test_0001_can create a new review:
Hanami::Model::Error: SQLite3::SQLException: no such table: reviews
/home/ytg/.rvm/gems/ruby-2.5.1/gems/hanami-model-1.2.0/lib/hanami/repository.rb:362:in `rescue in create'
/home/ytg/.rvm/gems/ruby-2.5.1/gems/hanami-model-1.2.0/lib/hanami/repository.rb:359:in `create'
...
我怀疑 rake 正在使用与 hanami 不同的数据库文件,因为 table 确实应该在那里。但为什么?我怎样才能确保他们使用相同的数据库?
编辑:添加 Rakefile 以防万一
require 'rake'
require 'hanami/rake_tasks'
require 'rake/testtask'
require 'rubocop/rake_task'
RuboCop::RakeTask.new
Rake::TestTask.new do |t|
t.pattern = 'spec/**/*_spec.rb'
t.libs << 'spec'
t.warning = false
end
task default: :test
task spec: :test
你需要 create the db for the test environment 在 运行 他们之前
HANAMI_ENV=test bundle exec hanami db prepare
我 getting started with Hanami。 (我使用不同的实体名称,我从评论开始,而不是书籍,否则我按照链接页面上的说明进行操作。)
bundle exec hanami db prepare
运行良好。 SQLite 数据库已创建。 bundle exec hanami db
运行良好
select * from reviews;
不抱怨。 bundle exec hanami server
运行良好,我可以加载 '/reviews'
,我可以用 '/reviews/new'
创建一个新的,然后我可以在列表中再次看到结果。它绝对适用于数据库。
然后是 bundle exec rake test
,它会抛出类似
9) Error:
Add a review#test_0001_can create a new review:
Hanami::Model::Error: SQLite3::SQLException: no such table: reviews
/home/ytg/.rvm/gems/ruby-2.5.1/gems/hanami-model-1.2.0/lib/hanami/repository.rb:362:in `rescue in create'
/home/ytg/.rvm/gems/ruby-2.5.1/gems/hanami-model-1.2.0/lib/hanami/repository.rb:359:in `create'
...
我怀疑 rake 正在使用与 hanami 不同的数据库文件,因为 table 确实应该在那里。但为什么?我怎样才能确保他们使用相同的数据库?
编辑:添加 Rakefile 以防万一
require 'rake'
require 'hanami/rake_tasks'
require 'rake/testtask'
require 'rubocop/rake_task'
RuboCop::RakeTask.new
Rake::TestTask.new do |t|
t.pattern = 'spec/**/*_spec.rb'
t.libs << 'spec'
t.warning = false
end
task default: :test
task spec: :test
你需要 create the db for the test environment 在 运行 他们之前
HANAMI_ENV=test bundle exec hanami db prepare