【发布时间】:2014-08-25 10:58:40
【问题描述】:
我想为 Rails 加载测试环境来运行我的 minitest 测试。
在将 RAILS_ENV 设置为“测试”后,我需要 config/environment.rb。
这似乎不是正确的方法,因为似乎没有创建测试数据库。
我知道这是一个非常愚蠢的问题,但我没有看到其他人真正问过这个问题。
*我的 test/test_helper.rb 中的代码
require 'minitest/autorun'
ENV['RAILS_ENV'] = 'test'
require_relative '../config/environment'
*test/models/users_test.rb 中的基本锅炉板和健全性测试
require_relative '../test_helper.rb'
class UserModelTest < MiniTest::Test
def setup
@user = User.new
@user.email = 'me@example.com'
@user.password = 'password'
@user.save
end
def test_sanity
assert true
end
end
*我从上面的设置方法中得到的错误让我认为测试数据库没有被创建和迁移
Error:
UserModelTest#test_sanity:
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "users" does not exist
LINE 5: WHERE a.attrelid = '"users"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
/home/john/.rvm/gems/ruby-2.1.1@mangam/gems/activerecord-4.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:815:in `async_exec'
.
.
.
/home/john/.rvm/gems/ruby-2.1.1@mangam/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:23:in `new'
test/models/users_test.rb:6:in `setup'
【问题讨论】:
标签: ruby-on-rails ruby minitest