作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Rails 新手,刚开始学习测试。我们遇到的问题可能有一个让我们难过的简单答案。
我们已经编写了一些代码并使其在开发中运行(只是静态代码和带有 Devise 的登录系统)。我们文件中唯一的测试用例是由 rails 生成的,例如:
test "should get about" do
get :about
assert_response :success
end
然而,当我们运行 bundle exec rake test
时,令我们惊讶的是,我们未能通过每一个测试。
10 runs, 0 assertions, 0 failures, 10 errors, 0 skips
每个测试都有相同的错误:
ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR: null value in column "email" violates not-null constraint
DETAIL: Failing row contains (980190962, null, 2015-10-27 09:40:30, 2015-10-27 09:40:30).
: INSERT INTO "leads" ("created_at", "updated_at", "id") VALUES ('2015-10-27 09:40:30', '2015-10-27 09:40:30', 980190962)
通过阅读该错误,我们的 leads
表中似乎有一些记录没有电子邮件。电子邮件是迁移后创建的字段。但是,通过 psqlAdmin 查看,每一行都有一封电子邮件。此外,如果我们在 chrome 中加载页面后查看控制台,则没有错误。
即使是最基本的测试也会因同样的错误而失败:
test "the truth" do
assert true
end
我唯一的猜测是有一些默认的播种正在进行,它试图在没有电子邮件的情况下将字段插入潜在客户。然而,seeds.rb
是完全空白的。
这是我在终端中调用的开始:
Macintosh-2:triplanding Calvino$ bundle exec rake test
Run options: --seed 15348
# Running:
EEEEEEEEEE
Finished in 0.108843s, 91.8753 runs/s, 0.0000 assertions/s.
leads
甚至参与了 assert true 之类的测试。提前致谢!
更新
这是我的 fixture/leads.yml 文件。我们没有对其进行编辑,这是生成的内容:
one: {}
# column: value
#
two: {}
# column: value
最佳答案
很可能是因为您的 fixtures 由于以下原因无法运行:
ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR: null value in column "email" violates not-null constraint
检查您的潜在客户固定装置是否不包含空电子邮件,它应该可以工作!
每当您在 Rails 上运行测试时,它都会设置测试数据库(这就是 assert true
失败的原因)
关于ruby-on-rails - Rails 4 - 所有测试均失败(甚至断言为真),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33364748/
我是一名优秀的程序员,十分优秀!