Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Add using Turn with natural language test case names if the library i…

…s available (which it will be in Rails 3.1) [DHH]
  • Loading branch information...
commit 6eff04499e28865890e1ae3915fe80e4903a997b 1 parent edf7c9a
@dhh dhh authored
View
2  activesupport/CHANGELOG
@@ -1,5 +1,7 @@
*Rails 3.1.0 (unreleased)*
+* Add using Turn with natural language test case names if the library is available (which it will be in Rails 3.1) [DHH]
+
* LocalCache strategy is now a real middleware class, not an anonymous class
posing for pictures.
View
19 activesupport/lib/active_support/test_case.rb
@@ -5,25 +5,10 @@
require 'active_support/testing/declarative'
require 'active_support/testing/pending'
require 'active_support/testing/isolation'
+require 'active_support/testing/turn_formatting'
+require 'active_support/testing/mochaing'
require 'active_support/core_ext/kernel/reporting'
-begin
- silence_warnings { require 'mocha' }
-rescue LoadError
- # Fake Mocha::ExpectationError so we can rescue it in #run. Bleh.
- Object.const_set :Mocha, Module.new
- Mocha.const_set :ExpectationError, Class.new(StandardError)
-end
-
-# Added by Turn to support natural case names in the output formatting
-if defined?(MiniTest)
- require 'turn'
-
- if MiniTest::Unit.respond_to?(:use_natural_language_case_names=)
- MiniTest::Unit.use_natural_language_case_names = true
- end
-end
-
module ActiveSupport
class TestCase < ::Test::Unit::TestCase
if defined? MiniTest
View
7 activesupport/lib/active_support/testing/mochaing.rb
@@ -0,0 +1,7 @@
+begin
+ silence_warnings { require 'mocha' }
+rescue LoadError
+ # Fake Mocha::ExpectationError so we can rescue it in #run. Bleh.
+ Object.const_set :Mocha, Module.new
+ Mocha.const_set :ExpectationError, Class.new(StandardError)
+end
View
33 activesupport/lib/active_support/testing/turn_formatting.rb
@@ -0,0 +1,33 @@
+# Turn gives you prettier formatting for MiniTest and inline failure reporting.
+# It also allows us to report test cases in natural language rather than with underscores. Example:
+#
+# CommentsControllerTest:
+# PASS the truth (0.03s)
+#
+# APITest
+# test_api_without_subdomain PASS
+# test_create_milestone_using_typed_xml FAIL
+# /test/integration/api_test.rb:50:in `test_create_milestone_using_typed_xml'
+# <2006-05-01> expected but was
+# <Mon May 01 07:00:00 UTC 2006>.
+# test_create_milestone_using_untyped_xml FAIL
+# /test/integration/api_test.rb:38:in `test_create_milestone_using_untyped_xml'
+# <2006-05-01> expected but was
+# <Mon May 01 07:00:00 UTC 2006>.
+
+#
+# vs:
+#
+# .FF
+
+if defined?(MiniTest)
+ begin
+ silence_warnings { require 'turn' }
+
+ if MiniTest::Unit.respond_to?(:use_natural_language_case_names=)
+ MiniTest::Unit.use_natural_language_case_names = true
+ end
+ rescue LoadError
+ # If there's no turn, that's fine, it's just formatting
+ end
+end

1 comment on commit 6eff044

@janx

Cool! The only one problem is there's no aggregate error information at last, so I have to scroll back to find failed tests :(

Please sign in to comment.
Something went wrong with that request. Please try again.