我的黄瓜测试有一个env.rb从头开始构建一个db,让测试失败,导致在运行测试时不存在的关系。
这是我的env.rb,没有不必要的代码。
require 'pg'
require 'sequel'
DBNAME = 'dbname'
ADMIN_DB = Sequel.connect 'postgres://postgres:@localhost/postgres'
query = ADMIN_DB['SELECT * FROM pg_database WHERE datname = ?', DBNAME]
ADMIN_DB['CREATE DATABASE ?', Sequel.lit(DBNAME)].all if query.count == 0
ENV['DATABASE_TEST'] = "postgres://postgres:@localhost/#{DBNAME}"
DATABASE_TEST = Sequel.connect ENV['DATABASE_TEST']
require_relative '../../app'
Sequel.extension :migration
Sequel::Migrator.run(DATABASE_TEST, 'db/migrations')
我的模特:
class User < Sequel::Model
end
然后我在我的测试中使用User.new。 当我运行它时,数据库和表都被创建,但控制台在运行cukes时仍然给我这个:
PG::UndefinedTable: ERROR: relation "users" does not exist
我在env中尝试过各种代码重新排列,以确保在我的模型加载之前完成迁移。