我尝试运行这个最简单的单元测试:
I try to run this simplest unit test:
test "the truth" do assert true end像这样:
ruby -Itest test/unit/my_model_test.rb(文件中只有一个测试,实际上整个站点中)
(there is the only one test in the file, and actually in the whole site)
失败并显示以下消息:
ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: column email is not unique: INSERT INTO "users"... [some values to insert here]现在我确实有一个名为users"的表,但除此之外,我从未要求对其进行任何测试,我什至没有进行此类测试.这个错误从何而来?我如何只运行我的测试?
now I do have a table named "users" but other than that I have never asked to do any tests on it nor do I even have such tests. Where does this error come from? How do I run just my test?
如果有帮助,用户"表来自设计宝石
the "users" table comes from the devise gem if that helps
推荐答案引用自 guides.rubyonrails/testing.html
Rails 默认自动从用于单元和功能测试的 test/fixtures 文件夹.加载中包括三个步骤:
Rails by default automatically loads all fixtures from the test/fixtures folder for your unit and functional test. Loading involves three steps:
- 从与夹具对应的表中删除任何现有数据
- 将夹具数据加载到表格中
- 将夹具数据转储到变量,以防您想直接访问它
所以我认为您需要检查这些装置.另外我建议你阅读那个教程.写的真好.
So I think you need to check those fixtures. Also I suggest you to read that tutorial. It is very well written.
更多推荐
rails 奇怪的单元测试失败
发布评论