ruby - 如何让 rspec 不显示数据库查询而只显示带有 rails_12factor 的点?

标签 ruby rspec

ruby: 2.0
rails: 3.2.17
rspec: 2.14.8
Database: mysql

rspec spec 用于仅输出点。

当我推送到 Heroku 并且最近添加了 rails_12factor gem 来绕过它时,我收到了弃用警告。但是,现在在本地运行规范时,我会得到每个事务的详细数据库输出。
当我需要它时这是一个很好的选择,否则它会产生很多不需要和分散注意力的输出。

所以我想要一个将它用于 Heroku 而不是本地的选项。

请注意,这不会通过使用格式化程序来解决,例如

rspec spec -fd

此外,如果出现错误,在这种冗长程度下,错误几乎总是滚出当前页面...

09:50:39 durrantm Castle2012 /home/durrantm/Dropnot/_/rails_apps/linker 74093480_wire_up_verify_code
$ rspec spec/models/link_spec.rb -fd
Connecting to database specified by database.yml
...
Link
   (0.2ms)  BEGIN
   (0.2ms)  SAVEPOINT active_record_1
  SQL (0.6ms)  INSERT INTO `groups` (`created_at`, `group_description`, `group_name`, `updated_at`) VALUES ('2014-07-12 13:50:49', 'Various jQuery examples of common situa
tions amnd solutions', 'jQuery Examples', '2014-07-12 13:50:49')
   (0.2ms)  RELEASE SAVEPOINT active_record_1
   (0.2ms)  SAVEPOINT active_record_1
  Link Load (0.6ms)  SELECT `links`.* FROM `links` WHERE (links.position IS NOT NULL) AND (1 = 1) ORDER BY links.position DESC LIMIT 1
  SQL (0.4ms)  INSERT INTO `links` (`alt_text`, `content_date`, `created_at`, `group_id`, `position`, `updated_at`, `url_address`, `verified_date`, `version_number`) VALUE
S ('examples of common situations amnd solutions', NULL, '2014-07-12 13:50:49', 141, 1, '2014-07-12 13:50:49', 'http://test.com', NULL, NULL)
   (0.1ms)  RELEASE SAVEPOINT active_record_1
   (68.4ms)  ROLLBACK
  should be valid
   (0.2ms)  BEGIN
   (0.2ms)  SAVEPOINT active_record_1
  SQL (0.3ms)  INSERT INTO `groups` (`created_at`, `group_description`, `group_name`, `updated_at`) VALUES ('2014-07-12 13:50:49', 'Various jQuery examples of common situa
tions amnd solutions', 'jQuery Examples', '2014-07-12 13:50:49')
   (0.1ms)  RELEASE SAVEPOINT active_record_1
   (0.2ms)  SAVEPOINT active_record_1
  Link Load (0.7ms)  SELECT `links`.* FROM `links` WHERE (links.position IS NOT NULL) AND (1 = 1) ORDER BY links.position DESC LIMIT 1
  SQL (0.5ms)  INSERT INTO `links` (`alt_text`, `content_date`, `created_at`, `group_id`, `position`, `updated_at`, `url_address`, `verified_date`, `version_number`) VALUE
S ('examples of common situations amnd solutions', NULL, '2014-07-12 13:50:49', 142, 1, '2014-07-12 13:50:49', 'http://test.com', NULL, NULL)
   (0.2ms)  RELEASE SAVEPOINT active_record_1
   (67.6ms)  ROLLBACK
  should have attribute :group_id
   (0.3ms)  BEGIN
   (0.2ms)  SAVEPOINT active_record_1
  SQL (0.4ms)  INSERT INTO `groups` (`created_at`, `group_description`, `group_name`, `updated_at`) VALUES ('2014-07-12 13:50:49', 'Various jQuery examples of common situa
tions amnd solutions', 'jQuery Examples', '2014-07-12 13:50:49')
   (0.1ms)  RELEASE SAVEPOINT active_record_1
   (0.2ms)  SAVEPOINT active_record_1
  Link Load (0.5ms)  SELECT `links`.* FROM `links` WHERE (links.position IS NOT NULL) AND (1 = 1) ORDER BY links.position DESC LIMIT 1
  SQL (0.4ms)  INSERT INTO `links` (`alt_text`, `content_date`, `created_at`, `group_id`, `position`, `updated_at`, `url_address`, `verified_date`, `version_number`) VALUE
S ('examples of common situations amnd solutions', NULL, '2014-07-12 13:50:49', 143, 1, '2014-07-12 13:50:49', 'http://test.com', NULL, NULL)
   (0.1ms)  RELEASE SAVEPOINT active_record_1
   (68.7ms)  ROLLBACK
  should have attribute :url_address
...

最佳答案

我们也看到了这一点,它是由 rails_12factor gem 生成的,它可以被抑制,通常只需确保 gem 仅在生产组中,就像这样:

group :production do
  gem 'rails_12factor'
end

rails_12factor 的依赖项之一是另一个名为 rails_stdout_logging 的 gem,它会导致您看到的输出。

关于ruby - 如何让 rspec 不显示数据库查询而只显示带有 rails_12factor 的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713594/

相关文章:

ruby - 如何在 Ruby 中执行事件?

ruby-on-rails - 嵌套形式的 HABTM 复选框

Ruby %x 在 64 位 Linux 上 fork ,但不在 32 位 Linux 上 fork ,并且仅使用特定语法

ruby - 如何告诉 rspec 在没有未决测试输出的情况下运行?

ruby-on-rails - Spork 没有加速我的测试

c - 如何在 Ruby C 扩展中创建 Date 对象?

ruby-on-rails - Rails 3 - 自己的验证消息而不是 "is not a number"

ruby-on-rails - 使用 Devise 进行 Action 电缆测试

ruby - 运行我的第一个 RSpec 测试,有什么方法可以只打印错误而没有回溯?

ruby-on-rails - rspec - 使用命名空间时,rails 路由到错误的 Controller ,但只是有时