Permalink
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...
1 parent edf7c9a commit 6eff04499e28865890e1ae3915fe80e4903a997b @dhh dhh committed Mar 31, 2011
@@ -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.
@@ -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
@@ -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
@@ -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
Contributor
janx commented on 6eff044 Apr 2, 2011

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.