pretty_test 0.0.5 → 0.0.6

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.
@@ -4,7 +4,7 @@ module PrettyTest
4
4
  class Tap < ::MiniTest::MiniTap
5
5
 
6
6
  SKIP_FORMAT = "\e[33m[SKIPPED] %s: %s\e[0m\n%s\n%s"
7
- FAILURE_FORMAT = "\e[31m[FAILURE] %s: %s\e[0m\n%s\n%s"
7
+ FAILURE_FORMAT = "\e[31m[FAILURE] %s: %s\e[0m\n\e[31m%s: %s\e[0m\n%s"
8
8
  ERROR_FORMAT = "\e[31m[ERROR] %s: %s\e[0m\n\e[31m%s: %s\e[0m\n%s"
9
9
  STATUS_FORMAT = "\e[2K\r\e[?7l\e[37m(%.1fs) \e[32m%d/%d tests\e[37m, \e[36m%d assertions\e[37m, \e[31m%d errors\e[37m, \e[31m%d failures\e[37m, \e[33m%d skips \e[37m%s\e[?7h\e[0m"
10
10
 
@@ -40,15 +40,10 @@ module PrettyTest
40
40
  end
41
41
 
42
42
  def tapout_failure(suite, test, test_runner)
43
- @progress += 1
44
- error = test_runner.exception
45
- test_name = pretty_test_name(test)
46
- location = pretty_location(error)
47
- message = error.message.strip
48
- print_error FAILURE_FORMAT, suite_name, test_name, message, location
43
+ tapout_error(suite, test, test_runner, FAILURE_FORMAT)
49
44
  end
50
45
 
51
- def tapout_error(suite, test, test_runner)
46
+ def tapout_error(suite, test, test_runner, format = ERROR_FORMAT)
52
47
  @progress += 1
53
48
  error = test_runner.exception
54
49
  test_name = pretty_test_name(test)
@@ -66,6 +61,12 @@ module PrettyTest
66
61
  end
67
62
  end
68
63
 
64
+ def tapout_(suite, test, test_runner)
65
+ remove_status
66
+ puts "\n\e[31mCould not run #{suite}##{test} for an unknown reason\e[0m\n"
67
+ puts
68
+ end
69
+
69
70
  protected
70
71
 
71
72
  def pretty_suite_name(suite)
@@ -92,12 +93,19 @@ module PrettyTest
92
93
  end
93
94
 
94
95
  def pretty_trace(e)
95
- path, line = location(e)
96
- e.backtrace.map { |trace_line|
97
- prefix = trace_line.index("#{path}:#{line}") ? "\e[1m-> " : " "
98
- file, line = trace_line.sub(/:in .*$/, "").split(":")
99
- clean_trace_line(prefix, file, line)
100
- }.compact.join("\n")
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
102
+ lines = []
103
+ e.backtrace.each_with_index do |trace, index|
104
+ prefix = index == location_index ? "\e[1m-> " : " "
105
+ trace_file, trace_line = trace.sub(/:in .*$/, "").split(":")
106
+ lines << clean_trace_line(prefix, trace_file, trace_line)
107
+ end
108
+ lines.compact.join("\n")
101
109
  end
102
110
 
103
111
  def clean_trace_line(prefix, path, line)
@@ -1,3 +1,3 @@
1
1
  module PrettyTest
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
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.5
4
+ version: 0.0.6
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: 2011-10-19 00:00:00.000000000Z
12
+ date: 2012-01-13 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
16
- requirement: &70172212915020 !ruby/object:Gem::Requirement
16
+ requirement: &70207780914120 !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: *70172212915020
24
+ version_requirements: *70207780914120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitap
27
- requirement: &70172212914080 !ruby/object:Gem::Requirement
27
+ requirement: &70207780913080 !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: *70172212914080
35
+ version_requirements: *70207780913080
36
36
  description: Minitest patch for pretty (and useful) output.
37
37
  email:
38
38
  - vladimir@tuzinsky.com