mirror of https://github.com/rails/rails
Tests tag the Rails log with the current test class and test case
This commit is contained in:
parent
107fd8788f
commit
86ebe0bd36
|
@ -1,5 +1,12 @@
|
|||
## Rails 4.0.0 (unreleased) ##
|
||||
|
||||
* Tests tag the Rails log with the current test class and test case:
|
||||
|
||||
[SessionsControllerTest] [test_0002_sign in] Processing by SessionsController#create as HTML
|
||||
[SessionsControllerTest] [test_0002_sign in] ...
|
||||
|
||||
*Jeremy Kemper*
|
||||
|
||||
* Add logger.push_tags and .pop_tags to complement logger.tagged:
|
||||
|
||||
class Job
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
gem 'minitest' # make sure we get the gem, not stdlib
|
||||
require 'minitest/spec'
|
||||
require 'active_support/testing/tagged_logging'
|
||||
require 'active_support/testing/setup_and_teardown'
|
||||
require 'active_support/testing/assertions'
|
||||
require 'active_support/testing/deprecation'
|
||||
|
@ -33,6 +34,7 @@ module ActiveSupport
|
|||
:sorted
|
||||
end
|
||||
|
||||
include ActiveSupport::Testing::TaggedLogging
|
||||
include ActiveSupport::Testing::SetupAndTeardown
|
||||
include ActiveSupport::Testing::Assertions
|
||||
include ActiveSupport::Testing::Deprecation
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
require 'active_support/concern'
|
||||
|
||||
module ActiveSupport
|
||||
module Testing
|
||||
module TaggedLogging
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
attr_writer :tagged_logger
|
||||
|
||||
def before_setup
|
||||
tagged_logger.push_tags(self.class.name, __name__) if tagged_logging?
|
||||
super
|
||||
end
|
||||
|
||||
def after_teardown
|
||||
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
|
|
@ -171,3 +171,18 @@ class SubclassSetupAndTeardownTest < SetupAndTeardownTest
|
|||
assert_equal [:foo, :bar, :bar, :foo], @called_back
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class TestCaseTaggedLoggingTest < ActiveSupport::TestCase
|
||||
def before_setup
|
||||
require 'stringio'
|
||||
@out = StringIO.new
|
||||
self.tagged_logger = ActiveSupport::TaggedLogging.new(Logger.new(@out))
|
||||
super
|
||||
end
|
||||
|
||||
def test_logs_tagged_with_current_test_case
|
||||
tagged_logger.info 'test'
|
||||
assert_equal "[#{self.class.name}] [#{__name__}] test\n", @out.string
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue