pretty_test 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/pretty_test.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  require "pretty_test/version"
2
2
  require "pretty_test/tap"
3
3
 
4
- MiniTest::Unit.runner = PrettyTest::Tap.new
4
+ MiniTest::Unit.runner = PrettyTest::Tap.new if STDOUT.tty?
@@ -40,14 +40,20 @@ module PrettyTest
40
40
  end
41
41
 
42
42
  def tapout_failure(suite, test, test_runner)
43
- tapout_error(suite, test, test_runner, FAILURE_FORMAT)
43
+ @progress += 1
44
+ error = test_runner.exception
45
+ test_name = pretty_test_name(test)
46
+ index = find_assertion_index(error)
47
+ trace = pretty_trace(error, index)
48
+ print_error FAILURE_FORMAT, suite_name, test_name, error.class, error.message, trace
44
49
  end
45
50
 
46
- def tapout_error(suite, test, test_runner, format = ERROR_FORMAT)
51
+ def tapout_error(suite, test, test_runner)
47
52
  @progress += 1
48
53
  error = test_runner.exception
49
54
  test_name = pretty_test_name(test)
50
- trace = pretty_trace(error)
55
+ index = find_exception_index(error)
56
+ trace = pretty_trace(error, index)
51
57
  print_error ERROR_FORMAT, suite_name, test_name, error.class, error.message, trace
52
58
  end
53
59
 
@@ -92,15 +98,18 @@ module PrettyTest
92
98
  clean_trace_line("\e[1m-> ", path, line)
93
99
  end
94
100
 
95
- def pretty_trace(e)
96
- assertion_index = e.backtrace.rindex { |trace| trace =~ /:in .(assert|refute|flunk|pass|fail|raise|must|wont)/ }
97
- location_index = if assertion_index
98
- assertion_index + 1
99
- else
100
- e.backtrace.index { |trace_line| trace_line.index(Dir.pwd) }
101
- end
101
+ def find_assertion_index(error)
102
+ index = error.backtrace.index { |trace| trace =~ /:in .(assert|refute|flunk|pass|fail|raise|must|wont)/ }
103
+ index ? index + 1 : find_exception_index(error)
104
+ end
105
+
106
+ def find_exception_index(error)
107
+ error.backtrace.index { |trace| trace.index(Dir.pwd) }
108
+ end
109
+
110
+ def pretty_trace(error, location_index)
102
111
  lines = []
103
- e.backtrace.each_with_index do |trace, index|
112
+ error.backtrace.each_with_index do |trace, index|
104
113
  prefix = index == location_index ? "\e[1m-> " : " "
105
114
  trace_file, trace_line = trace.sub(/:in .*$/, "").split(":")
106
115
  lines << clean_trace_line(prefix, trace_file, trace_line)
@@ -1,3 +1,3 @@
1
1
  module PrettyTest
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pretty_test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-13 00:00:00.000000000Z
12
+ date: 2012-01-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
16
- requirement: &70207780914120 !ruby/object:Gem::Requirement
16
+ requirement: &70144707253360 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2.6'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70207780914120
24
+ version_requirements: *70144707253360
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitap
27
- requirement: &70207780913080 !ruby/object:Gem::Requirement
27
+ requirement: &70144707252840 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0.3'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70207780913080
35
+ version_requirements: *70144707252840
36
36
  description: Minitest patch for pretty (and useful) output.
37
37
  email:
38
38
  - vladimir@tuzinsky.com