5

只是为了澄清一下,我不是一些残忍的工厂老板,试图让工作的女士们保持沉默。我有一个非常烦人的问题,在我的规范中使用 Thoughtbot 的工厂女孩​​时,每次使用 Factory.create(:foo) 时,新创建的 ActiveRecord 模型实例都会记录到控制台。这使得查看我的控制台输出更难直观地过滤掉所有额外的日志记录。是否有某个地方的设置或可以设置的标志来使这个额外的日志静音?

下面是我的 rspec 输出的一个小例子。这 '。' 在这种情况下,在每一行的开头是一个成功的测试。

loading autotest/rspec
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby /Library/Ruby/Gems/1.8/gems/rspec-1.2.9/bin/spec --autospec spec/publisher_spec.rb -O spec/spec.opts 
#<Event id: nil, oid: "mainEvent1", name: "Main Event", short_name: "mainevent", time_zone: "PST", created_at: nil, updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>
#<Event id: nil, oid: "mainEvent1", name: "Main Event", short_name: "mainevent", time_zone: "PST", created_at: "2009-11-18 19:11:56", updated_at: "2009-11-18 19:11:56", draft: true, draft_origin_id: 3, draft_deleted: false>
#<Event id: nil, oid: "bumbershoo", name: "Bumbershoot", short_name: "bumbershoot", time_zone: "PST", created_at: nil, updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>
#<Notification id: nil, oid: "8P93CNEcl0", event_id: 3, name: "Penut Butter Jelly Time", url: nil, type: "Alert", priority: 10, last_displayed: "2009-11-16 19:11:54", format: nil, content: "IT'S PENUT BUTTER JELLY TIME.  WHERE YOU AT? WHERE ...", image: nil, is_active: true, created_at: nil, updated_at: nil, updated_by: nil, image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>
#<Notification id: nil, oid: "8P93CNEcl0", event_id: 3, name: "Penut Butter Jelly Time", url: nil, type: "Alert", priority: 10, last_displayed: "2009-11-16 19:11:54", format: nil, content: "IT'S PENUT BUTTER JELLY TIME.  WHERE YOU AT? WHERE ...", image: nil, is_active: true, created_at: "2009-11-18 19:11:57", updated_at: "2009-11-18 19:11:57", updated_by: nil, image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil, draft: true, draft_origin_id: 3, draft_deleted: false>
.#<Event id: nil, oid: "mainEvent1", name: "Main Event", short_name: "mainevent", time_zone: "PST", created_at: nil, updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>
#<Event id: nil, oid: "bumbershoo", name: "Bumbershoot", short_name: "bumbershoot", time_zone: "PST", created_at: nil, updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>
.#<Event id: nil, oid: "mainEvent1", name: "Main Event", short_name: "mainevent", time_zone: "PST", created_at: nil, updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>
.#<Event id: nil, oid: "mainEvent1", name: "Main Event", short_name: "mainevent", time_zone: "PST", created_at: nil, updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>
.#<Event id: nil, oid: "mainEvent1", name: "Main Event", short_name: "mainevent", time_zone: "PST", created_at: nil, updated_at: nil, draft: true, draft_origin_id: nil, draft_deleted: false>

我已经多次挑选了我的规格,看看我是否在任何地方都有“puts foo.inspect”,但我没有。这发生在我所有使用自动测试和正常运行测试的 rspec 和黄瓜测试中。

这是与上述输出相关的我的factory.rb文件。注意:我的 factory.rb 中发生了一些小小的幻想。

[更新:2009-11-20] 只是想保持新鲜,看看其他人是否有任何想法。

4

2 回答 2

2

您能否详细说明您在哪里看到了日志记录行?你在跑步rake spec吗?您可以复制/粘贴一些示例输出吗?

于 2009-11-18T20:18:08.577 回答
0

我不知道如何或为什么,但这个问题已经解决了。我只能推测这是对 Factory Girl 或 rspec 的更新。也许我删除了我的代码中的一些日志记录。我不能确定。

于 2010-03-22T18:25:23.723 回答