Devise打破了我的所有测试 - ActiveRecord :: RecordNotUnique PG :: Error

Cam*_*ate 22 testing ruby-on-rails devise

我很难过.我有一个rails应用程序(3.1.3),我一直在建立我最近添加设计(2.0),以创建用户模型和随之而来的相应身份验证.安装设计并运行rake测试后,我的所有测试都抛出了同样的错误.在单元和功能测试中,我得到了一个如下错误:

ERROR should get index (0.05s) 
      ActiveRecord::RecordNotUnique: PG::Error: ERROR:  duplicate key value violates unique constraint "index_users_on_email"
DETAIL:  Key (email)=() already exists.
: INSERT INTO "users" ("created_at", "updated_at", "id") VALUES ('2012-03-30 04:13:13', '2012-03-30 04:13:13', 298486374)
      /Users/myname/.rvm/gems/ruby-1.9.2-p290@global/gems/activerecord-3.1.3/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `async_exec'
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这会影响我的所有测试,或者是什么导致它.以前有人见过这样的东西吗?我在这做错了什么?

任何建议/帮助将不胜感激!

谢谢!

Gon*_*fva 38

如果有人提出这个问题,答案是由Cam Norgate在评论中提供的.

问题出在文件test/fixtures/users.yml中

one: {}
#  column: value
#
two: {}
#  column: value
Run Code Online (Sandbox Code Playgroud)

它正在创建两个空用户(一个和两个),没有电子邮件.只需在两条未注释的行之前发表评论.


小智 2

Devise 需要一个唯一的电子邮件列,而您正尝试使用 email = nil 保存多个用户。检查您的测试装置,您可能只是忘记为您的装置用户设置电子邮件。