我做了一个lynda.com教程,使用rails创建了一个简单的cms。我想通过添加单元测试来练习和扩展我对rails的了解。但每次我尝试运行任何测试时都会出现mysql错误。其中一个例子就是尝试在公共控制器上获取索引。
#public_controller_test.br
test "should get index" do
get public_index_url
assert_response :success
end
它给我以下错误
PublicControllerTest#test_should_get_index:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'simple_cms_test.users' doesn't exist: DELETE FROM `users`
如果您需要查看更多可用的代码 https://github.com/trmccormick/rails_simple_cms感谢您的帮助。
答案 0 :(得分:0)
错误表示您的users
数据库中没有表simple_cms_test
。
因此,您需要将测试数据库与dev db同步。
运行rake db:migrate test
或rake db:schema:load test
,一切都应该正常。
答案 1 :(得分:0)
我自己想出了这个问题。问题是在夹具我有一个文件users.yml它应该是admin_users.yml所以用户表从来没有加载假用户,所以它失败了。重命名文件纠正了问题。