@@ -9,6 +9,7 @@ def initialize(queue:, threads:)
99
1010 @failures = Concurrent ::Array . new
1111 @successes = Concurrent ::Array . new
12+ @errors = Concurrent ::Array . new
1213 end
1314
1415 def call
@@ -24,26 +25,36 @@ def call
2425 "pid" => Process . pid ,
2526 "failures" => @failures . to_a ,
2627 "successes" => @successes . size ,
28+ "errors" => @errors . to_a ,
2729 }
2830 end
2931
30- def success! ( name )
32+ def success! ( name , depth : 0 )
3133 @successes << name
3234
3335 Kernel . print (
3436 Quickdraw ::Config . success_symbol ,
3537 )
3638 end
3739
38- def failure!
39- location = caller_locations ( 3 , 1 ) . first
40- @failures << [ location . path , location . lineno , yield ]
40+ def failure! ( name , depth : 0 )
41+ location = caller_locations ( 2 + depth , 1 ) . first
42+ @failures << [ name , location . path , location . lineno , yield ]
4143
4244 Kernel . print (
4345 Quickdraw ::Config . failure_symbol ,
4446 )
4547 end
4648
49+ def error! ( name , error )
50+ message = error . respond_to? ( :detailed_message ) ? error . detailed_message : error . message
51+ @errors << [ name , error . class . name , message , error . backtrace ]
52+
53+ Kernel . print (
54+ Quickdraw ::Config . error_symbol ,
55+ )
56+ end
57+
4758 private
4859
4960 def drain_queue
0 commit comments