Ruby on rails 为什么我的测试代码有错误,但手动访问页面时没有?

Ruby on rails 为什么我的测试代码有错误,但手动访问页面时没有?,ruby-on-rails,testing,integration-testing,runtime-error,Ruby On Rails,Testing,Integration Testing,Runtime Error,我有一个网站的基础上。我在我的用户模型中添加了一个名为“show_extras”的布尔属性,并在用户配置文件页面中添加了一个复选框。现在,当我的测试到达提到“show_extras”属性的代码时(例如编辑用户页面),测试就会失败。当我手动访问页面时,我没有得到任何错误。怎么了?(我试着重新设置,但没用。) 这是(编辑页面上)导致错误的代码行之一: <%= f.check_box :show_extras %> 这是错误消息: AuthenticationPages未登录的登录页

我有一个网站的基础上。我在我的用户模型中添加了一个名为“show_extras”的布尔属性,并在用户配置文件页面中添加了一个复选框。现在,当我的测试到达提到“show_extras”属性的代码时(例如编辑用户页面),测试就会失败。当我手动访问页面时,我没有得到任何错误。怎么了?(我试着重新设置,但没用。)

这是(编辑页面上)导致错误的代码行之一:

<%= f.check_box :show_extras %>

这是错误消息:

AuthenticationPages未登录的登录页尝试访问受保护 登录后的页面应显示右侧页面
失败/错误:单击按钮“登录”
ActionView::模板::错误:
#用户:0…
#./app/views/users/edit.html.erb


这可能是因为测试数据库当前在用户表中没有
show_extras
列,而开发数据库有


你最近做过rake db:test:prepare吗?为了在数据库中创建新列,您可能必须运行它。

这可能是因为测试数据库当前在用户表中没有
show\u extras
列,而开发数据库有


你最近做过rake db:test:prepare吗?为了在数据库中创建新列,您可能必须运行它。

只是后续添加,您可以在
中创建别名。bashrc
将自动完成测试数据库的准备:

# ~/.bashrc

alias migrate='rake db:migrate && rake db:test:prepare'

现在,当您准备迁移数据库时,只需运行
migrate
,一切都会得到处理。没有30分钟的时间试图找出您的测试未通过的原因….

只是后续添加,您可以在
中创建别名。bashrc
并自动准备测试数据库:

# ~/.bashrc

alias migrate='rake db:migrate && rake db:test:prepare'

现在,当您准备迁移数据库时,只需运行
migrate
,一切都会得到处理。再也没有30分钟的时间试图找出你的考试不及格的原因了。…

@garbagecollection很乐意帮忙。我希望这是一个原创的想法,但几年前我在一本书中找到了它。“虽然我记不起是哪一个了。”垃圾收集很乐意帮忙。我希望这是一个原创的想法,但几年前我在一本书中找到了它。虽然我不记得是哪一个。