我尝试在Ruby on Rails教程(http://railstutorial.org)中完成第9.3.3章。
每当我运行测试时,它会说出以下内容:
Failures:
1) Users sign in/out success should sign a user in and out
Failure/Error: user = Factory(:user)
ActiveRecord::RecordInvalid:
Validation failed: Email has already been taken
# ./spec/requests/users_spec.rb:53:in `block (4 levels) in <top (required)>'
Finished in 5.8 seconds
4 examples, 1 failure
我尝试了各种修复方法,包括重置数据库 - 使用rake db:reset和rake db:populate。
我将不胜感激。
提前致谢。
答案 0 :(得分:2)
在您的测试运行时,似乎您的测试数据库没有包含在事务中。这导致测试数据库在测试运行之间保持不变。运行每个规范后,使用database cleaner清理测试数据库。