我刚做了一堆测试,结果都失败了,错误类似这样:
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
看起来问题出在这里:
fab!(:the_group) { Fabricate(:group) }
这些以前都可以正常工作,直到最近。我在处理另一个插件时也看到了类似的情况,我认为我设法自己设置了一个随机名称,但这些直到昨天都还能正常工作。
是有些东西改变了吗,还是我不小心犯了什么愚蠢的错误?
编辑:在 Claude 和 Discourse Helper Bot 的帮助下,我尝试将上面的 fab 替换为:
Fabricator(:the_group) do
name { sequence(:group_name) { |i| "Test Group #{i}" } }
end
但没能完全弄明白怎么做。
然后我改用了:
let(:the_group) { Fabricate(:group) }
代替了上面的 !fab,这把失败的数量从 12 减少到了 1,但仍然失败,错误是:
1) Pfaffmanager::ServersController servers admin can get servers owned by a group
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
我认为自昨天 CDT 上午 10:30 我最后一次提交以来,这些测试周围没有任何变化。
我回滚到了一个更早的提交,现在失败的错误是:
1) Pfaffmanager::ServersController servers includes groups that the user is in
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
然后我再次运行,没有任何更改,现在它在以下测试中失败:
1) Pfaffmanager::ServersController servers can update group id if group owner
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
所以看起来它在一个测试中失败了,而且是随机的?