From b82109495b2e910f05922b05a2df69d42f3635a9 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Wed, 26 Dec 2012 21:02:24 -0700 Subject: Make test logs easier to read. Tagging every message in tests makes the logs really wide. It's great for grepping, but annoying to open in an editor or a narrow terminal. Try out a different approach: spit out a heading before each test. --- .../lib/active_support/testing/tagged_logging.rb | 21 ++++++++++----------- activesupport/test/test_test.rb | 3 +-- 2 files changed, 11 insertions(+), 13 deletions(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/testing/tagged_logging.rb b/activesupport/lib/active_support/testing/tagged_logging.rb index 8ea2605733..9d43eb179f 100644 --- a/activesupport/lib/active_support/testing/tagged_logging.rb +++ b/activesupport/lib/active_support/testing/tagged_logging.rb @@ -1,26 +1,25 @@ module ActiveSupport module Testing - module TaggedLogging + # Logs a "PostsControllerTest: test name" heading before each test to + # make test.log easier to search and follow along with. + module TaggedLogging #:nodoc: attr_writer :tagged_logger def before_setup - tagged_logger.push_tags(self.class.name, __name__) if tagged_logging? - super - end - - def after_teardown + if tagged_logger + heading = "#{self.class}: #{__name__}" + divider = '-' * heading.size + tagged_logger.info divider + tagged_logger.info heading + tagged_logger.info divider + end super - tagged_logger.pop_tags(2) if tagged_logging? end private def tagged_logger @tagged_logger ||= (defined?(Rails.logger) && Rails.logger) end - - def tagged_logging? - tagged_logger && tagged_logger.respond_to?(:push_tags) - end end end end diff --git a/activesupport/test/test_test.rb b/activesupport/test/test_test.rb index d6821135ea..7f732a1d20 100644 --- a/activesupport/test/test_test.rb +++ b/activesupport/test/test_test.rb @@ -182,7 +182,6 @@ class TestCaseTaggedLoggingTest < ActiveSupport::TestCase end def test_logs_tagged_with_current_test_case - tagged_logger.info 'test' - assert_equal "[#{self.class.name}] [#{__name__}] test\n", @out.string + assert_match "#{self.class}: #{__name__}\n", @out.string end end -- cgit v1.2.3