Mysql2 ::错误:单元测试期间的表

时间:2017-04-03 17:50:07

标签: ruby-on-rails

我做了一个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感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

错误表示您的users数据库中没有表simple_cms_test

因此,您需要将测试数据库与dev db同步。

运行rake db:migrate testrake db:schema:load test,一切都应该正常。

答案 1 :(得分:0)

我自己想出了这个问题。问题是在夹具我有一个文件users.yml它应该是admin_users.yml所以用户表从来没有加载假用户,所以它失败了。重命名文件纠正了问题。