新的rails和刚刚开始学习测试。我们遇到了一个问题,这个问题可能有一个简单的答案,让我们感到困惑。
我们编写了一些代码,并使其在开发中正常工作(只是静态代码和登录系统w/ 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这样的测试。提前谢谢你!
更新
这是我的固定文件/铅文件。我们没有编辑它,这是生成的:
one: {}
# column: value
#
two: {}
# column: value发布于 2015-10-27 10:02:59
Moste可能是因为您的夹具无法运行,原因是:
ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR: null value in column "email" violates not-null constraint检查您的引线装置中没有一个包含空电子邮件,并且它可能会工作!
每当您在rails上运行测试时,它都会设置测试数据库(这就是即使是assert true失败的原因)。
https://stackoverflow.com/questions/33364748
复制相似问题