首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4-所有测试失败(甚至断言为真)

Rails 4-所有测试失败(甚至断言为真)
EN

Stack Overflow用户
提问于 2015-10-27 09:57:37
回答 1查看 607关注 0票数 2

新的rails和刚刚开始学习测试。我们遇到了一个问题,这个问题可能有一个简单的答案,让我们感到困惑。

我们编写了一些代码,并使其在开发中正常工作(只是静态代码和登录系统w/ Devise)。我们文件中唯一的测试用例是由rails生成的,例如:

代码语言:javascript
复制
  test "should get about" do
    get :about
    assert_response :success
  end

然而,当我们运行bundle exec rake test时,令人惊讶的是,我们失败了每一个测试

代码语言:javascript
复制
10 runs, 0 assertions, 0 failures, 10 errors, 0 skips

每个测试都有相同的错误:

代码语言:javascript
复制
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中加载页面后查看控制台,则不会出现错误。

即使是最基本的测试也因同样的错误而失败:

代码语言:javascript
复制
test "the truth" do
    assert true
end

我唯一的猜测是,有一些默认的种子正在进行,而且它试图在没有电子邮件的情况下将字段插入到引线中。然而,seeds.rb完全是空白的。

这里是我在终点站打电话的开始:

代码语言:javascript
复制
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.
  1. 为什么这些测试失败了?
  2. 为什么leads还要参与像assert这样的测试。

提前谢谢你!

更新

这是我的固定文件/铅文件。我们没有编辑它,这是生成的:

代码语言:javascript
复制
one: {}
# column: value
#
two: {}
#  column: value
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-27 10:02:59

Moste可能是因为您的夹具无法运行,原因是:

代码语言:javascript
复制
ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR:  null value in column "email" violates not-null constraint

检查您的引线装置中没有一个包含空电子邮件,并且它可能会工作!

每当您在rails上运行测试时,它都会设置测试数据库(这就是即使是assert true失败的原因)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33364748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档