[#10193] String.ord — David Flanagan <david@...>

Hi,

41 messages 2007/02/05
[#10197] Re: String.ord — Yukihiro Matsumoto <matz@...> 2007/02/06

Hi,

[#10198] Re: String.ord — David Flanagan <david@...> 2007/02/06

Yukihiro Matsumoto wrote:

[#10199] Re: String.ord — Daniel Berger <djberg96@...> 2007/02/06

David Flanagan wrote:

[#10200] Re: String.ord — David Flanagan <david@...> 2007/02/06

Daniel Berger wrote:

[#10208] Re: String.ord — "Nikolai Weibull" <now@...> 2007/02/06

On 2/6/07, David Flanagan <david@davidflanagan.com> wrote:

[#10213] Re: String.ord — David Flanagan <david@...> 2007/02/06

Nikolai Weibull wrote:

[#10215] Re: String.ord — "Nikolai Weibull" <now@...> 2007/02/06

On 2/6/07, David Flanagan <david@davidflanagan.com> wrote:

[#10216] Re: String.ord — David Flanagan <david@...> 2007/02/07

Nikolai Weibull wrote:

[#10288] Socket library should support abstract unix sockets — <noreply@...>

Bugs item #8597, was opened at 2007-02-13 16:10

12 messages 2007/02/13

[#10321] File.basename fails on Windows root paths — <noreply@...>

Bugs item #8676, was opened at 2007-02-15 10:09

11 messages 2007/02/15

[#10323] Trouble with xmlrpc — James Edward Gray II <james@...>

Some of the Ruby code used by TextMate makes use of xmlrpc/

31 messages 2007/02/15
[#10324] Re: Trouble with xmlrpc — "Berger, Daniel" <Daniel.Berger@...> 2007/02/15

> -----Original Message-----

[#10326] Re: Trouble with xmlrpc — James Edward Gray II <james@...> 2007/02/15

On Feb 15, 2007, at 1:29 PM, Berger, Daniel wrote:

[#10342] Re: Trouble with xmlrpc — James Edward Gray II <james@...> 2007/02/16

While I am complaining about xmlrpc, we have another issue. It's

[#10343] Re: Trouble with xmlrpc — Alex Young <alex@...> 2007/02/16

James Edward Gray II wrote:

[#10344] Re: Trouble with xmlrpc — James Edward Gray II <james@...> 2007/02/16

On Feb 16, 2007, at 12:08 PM, Alex Young wrote:

[PATCH] Test::Unit shows result even if interrupted

From: Kouhei Sutou <kou@...>
Date: 2007-02-25 07:07:27 UTC
List: ruby-core #10420
Hi,

I have a test suite that takes many time to finish all test
cases. So, I often stop test runner by Ctrl+C if I find some
F/E. And I start debugging to pass the F/E. I can't wait for
finishing all test cases. Because I want to change test
status to GREEN from RED as soon as possible.

But there is a problem. Test::Unit doesn't show
failure/error details when I interrupt test runner.

I hope that Test::Unit shows result even if interrupted by
user. We will be able to start debugging before all test
cases are finished if Test::Unit supports this feature.

The attached patch is an implementation of this feature.


# I requested same feature to RSpec too. And RSpec accepted
# my request.


Thanks,
--
kou

Attachments (1)

Index: lib/test/unit/ui/testrunnermediator.rb
===================================================================
--- lib/test/unit/ui/testrunnermediator.rb	(revision 11881)
+++ lib/test/unit/ui/testrunnermediator.rb	(working copy)
@@ -34,24 +34,27 @@
           begin_time = Time.now
           notify_listeners(RESET, @suite.size)
           result = create_result
-          notify_listeners(STARTED, result)
-          result_listener = result.add_listener(TestResult::CHANGED) do |updated_result|
-            notify_listeners(TestResult::CHANGED, updated_result)
-          end
-          
-          fault_listener = result.add_listener(TestResult::FAULT) do |fault|
-            notify_listeners(TestResult::FAULT, fault)
-          end
-          
-          @suite.run(result) do |channel, value|
-            notify_listeners(channel, value)
+          begin
+            notify_listeners(STARTED, result)
+            result_listener = result.add_listener(TestResult::CHANGED) do |updated_result|
+              notify_listeners(TestResult::CHANGED, updated_result)
+            end
+
+            fault_listener = result.add_listener(TestResult::FAULT) do |fault|
+              notify_listeners(TestResult::FAULT, fault)
+            end
+
+            @suite.run(result) do |channel, value|
+              notify_listeners(channel, value)
+            end
+          rescue Interrupt
+          ensure
+            result.remove_listener(TestResult::FAULT, fault_listener)
+            result.remove_listener(TestResult::CHANGED, result_listener)
+            end_time = Time.now
+            elapsed_time = end_time - begin_time
+            notify_listeners(FINISHED, elapsed_time) #"Finished in #{elapsed_time} seconds.")
           end
-          
-          result.remove_listener(TestResult::FAULT, fault_listener)
-          result.remove_listener(TestResult::CHANGED, result_listener)
-          end_time = Time.now
-          elapsed_time = end_time - begin_time
-          notify_listeners(FINISHED, elapsed_time) #"Finished in #{elapsed_time} seconds.")
           return result
         end
 

In This Thread

Prev Next