petitest 0.1.3 → 0.2.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +1 -0
- data/lib/petitest.rb +0 -4
- data/lib/petitest/assertion_failure_error.rb +0 -36
- data/lib/petitest/autorun.rb +3 -0
- data/lib/petitest/configuration.rb +36 -19
- data/lib/petitest/subscribers/json_report_subscriber.rb +0 -3
- data/lib/petitest/test_case.rb +7 -42
- data/lib/petitest/test_group.rb +24 -3
- data/lib/petitest/texts/failures_element_text.rb +1 -1
- data/lib/petitest/texts/raised_code_text.rb +13 -5
- data/lib/petitest/texts/test_case_result_character_text.rb +1 -3
- data/lib/petitest/texts/test_cases_result_text.rb +26 -10
- data/lib/petitest/texts/test_counts_text.rb +1 -12
- data/lib/petitest/version.rb +1 -1
- metadata +2 -6
- data/lib/petitest/assertions.rb +0 -66
- data/lib/petitest/texts/errors_element_text.rb +0 -54
- data/lib/petitest/texts/errors_text.rb +0 -45
- data/lib/petitest/texts/failure_message_text.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94d661afca2ae26812fcfd79ffd3c54e1fbd4085
|
4
|
+
data.tar.gz: 26ce49148e23ff5e854b4ae1898ab7c11250a81b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e6243251265c19413ffff8923419cccf9c436e9c12ae058abb22d9545464270ac294ed87bec5d3f57ddb350fd9910e96013d947c820e3295e1cebe6bb7a5ce5
|
7
|
+
data.tar.gz: b68470322a44f4155d482e0d154758f2c09188a3f670452b0542a03d8087f950506e899ba10c0aa1c3fa9bca82c6e2dccef4c6c15e62d984ed9a04c02e3f935a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## v0.2.0
|
2
|
+
|
3
|
+
- Merge errors into failures
|
4
|
+
- Change test message interface
|
5
|
+
- Remove utility assertions except for `#assert`
|
6
|
+
- Add Petitest.configuration.backtrace_filter
|
7
|
+
- Stop tests if any error occured before running tests
|
8
|
+
- Improve report about empty errors/failures
|
9
|
+
|
1
10
|
## v0.1.3
|
2
11
|
|
3
12
|
- Fix OutputConcern bug
|
data/README.md
CHANGED
data/lib/petitest.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require "petitest/assertion_failure_error"
|
2
|
-
require "petitest/assertions"
|
3
2
|
require "petitest/configuration"
|
4
3
|
require "petitest/subscriber_concerns/output_concern"
|
5
4
|
require "petitest/subscriber_concerns/time_concern"
|
@@ -12,9 +11,6 @@ require "petitest/test_group"
|
|
12
11
|
require "petitest/test_method"
|
13
12
|
require "petitest/texts/base_text"
|
14
13
|
require "petitest/texts/error_message_text"
|
15
|
-
require "petitest/texts/errors_element_text"
|
16
|
-
require "petitest/texts/errors_text"
|
17
|
-
require "petitest/texts/failure_message_text"
|
18
14
|
require "petitest/texts/failures_element_text"
|
19
15
|
require "petitest/texts/failures_text"
|
20
16
|
require "petitest/texts/filtered_backtrace_text"
|
@@ -1,40 +1,4 @@
|
|
1
1
|
module Petitest
|
2
2
|
class AssertionFailureError < ::StandardError
|
3
|
-
# @return [String, nil]
|
4
|
-
attr_reader :additional_message
|
5
|
-
|
6
|
-
# @return [String]
|
7
|
-
attr_reader :template
|
8
|
-
|
9
|
-
# @return [Hash{Symbol => Object}]
|
10
|
-
attr_reader :template_variables
|
11
|
-
|
12
|
-
# @param additional_message [String, nil]
|
13
|
-
# @param template [String]
|
14
|
-
# @param template_variables [Hash, nil]
|
15
|
-
def initialize(
|
16
|
-
additional_message:,
|
17
|
-
template:,
|
18
|
-
template_variables:
|
19
|
-
)
|
20
|
-
@additional_message = additional_message
|
21
|
-
@template = template
|
22
|
-
@template_variables = template_variables
|
23
|
-
super(assertion_type_message)
|
24
|
-
end
|
25
|
-
|
26
|
-
# @return [String]
|
27
|
-
def assertion_type_message
|
28
|
-
template % inspected_template_variables
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
# @return [Hash{Symbol => String}]
|
34
|
-
def inspected_template_variables
|
35
|
-
template_variables.map do |key, value|
|
36
|
-
[key, value.inspect]
|
37
|
-
end.to_h
|
38
|
-
end
|
39
3
|
end
|
40
4
|
end
|
data/lib/petitest/autorun.rb
CHANGED
@@ -1,31 +1,48 @@
|
|
1
1
|
module Petitest
|
2
2
|
class Configuration
|
3
|
-
|
4
|
-
detail: :cyan,
|
5
|
-
error: :red,
|
6
|
-
failure: :red,
|
7
|
-
pass: :green,
|
8
|
-
skip: :yellow,
|
9
|
-
}
|
3
|
+
attr_writer :backtrace_filters
|
10
4
|
|
11
|
-
|
12
|
-
|
5
|
+
attr_writer :color
|
6
|
+
|
7
|
+
attr_writer :color_scheme
|
8
|
+
|
9
|
+
attr_writer :output
|
10
|
+
|
11
|
+
attr_writer :subscribers
|
12
|
+
|
13
|
+
# @return [Array<String>]
|
14
|
+
def backtrace_filters
|
15
|
+
@backtrace_filters ||= begin
|
16
|
+
path = ::File.expand_path("../..", __FILE__)
|
17
|
+
[-> (line) { line.start_with?(path) }]
|
18
|
+
end
|
19
|
+
end
|
13
20
|
|
14
21
|
# @return [Boolean]
|
15
|
-
|
22
|
+
def color
|
23
|
+
@color ||= true
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [Hash{Symbol => Symbol}]
|
27
|
+
def color_scheme
|
28
|
+
@color_scheme ||= {
|
29
|
+
detail: :cyan,
|
30
|
+
error: :red,
|
31
|
+
pass: :green,
|
32
|
+
skip: :yellow,
|
33
|
+
}
|
34
|
+
end
|
16
35
|
|
17
36
|
# @return [IO]
|
18
|
-
|
37
|
+
def output
|
38
|
+
@output ||= ::STDOUT.tap do |io|
|
39
|
+
io.sync = true
|
40
|
+
end
|
41
|
+
end
|
19
42
|
|
20
43
|
# @return [Array<Petitest::Subscribers::BaseSubscriber>]
|
21
|
-
|
22
|
-
|
23
|
-
def initialize
|
24
|
-
@color_scheme = DEFAULT_COLOR_SCHEME.dup
|
25
|
-
@color = true
|
26
|
-
@output = ::STDOUT
|
27
|
-
@output.sync = true
|
28
|
-
@subscribers = [::Petitest::Subscribers::ProgressReportSubscriber.new]
|
44
|
+
def subscribers
|
45
|
+
@subscribers ||= [::Petitest::Subscribers::ProgressReportSubscriber.new]
|
29
46
|
end
|
30
47
|
end
|
31
48
|
end
|
@@ -15,14 +15,11 @@ module Petitest
|
|
15
15
|
data = {
|
16
16
|
test_cases: test_cases.map do |test_case|
|
17
17
|
{
|
18
|
-
aborted: test_case.aborted?,
|
19
18
|
backtrace: test_case.backtrace,
|
20
19
|
class_name: test_case.test_group_class.to_s,
|
21
20
|
error_class_name: test_case.error_class_name,
|
22
21
|
error_message: test_case.error_message,
|
23
22
|
failed: test_case.failed?,
|
24
|
-
failure_additional_message: test_case.failure_additional_message,
|
25
|
-
failure_assertion_type_message: test_case.failure_assertion_type_message,
|
26
23
|
finished_at: test_case.finished_at.iso8601(6),
|
27
24
|
method_line_number: test_case.test_method.line_number,
|
28
25
|
method_name: test_case.test_method.method_name,
|
data/lib/petitest/test_case.rb
CHANGED
@@ -15,13 +15,6 @@ module Petitest
|
|
15
15
|
# @return [Petitest::TestMethod]
|
16
16
|
attr_reader :test_method
|
17
17
|
|
18
|
-
class << self
|
19
|
-
# @return [String]
|
20
|
-
def prefix_to_filter_backtrace
|
21
|
-
@prefix_to_filter_backtrace ||= ::File.expand_path("../..", __FILE__)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
18
|
# @param test_group_class [Class]
|
26
19
|
# @param test_method [Petitest::TestMethod]
|
27
20
|
def initialize(
|
@@ -34,75 +27,47 @@ module Petitest
|
|
34
27
|
@test_method = test_method
|
35
28
|
end
|
36
29
|
|
37
|
-
# @return [Boolean]
|
38
|
-
def aborted?
|
39
|
-
processed? && has_error? && !has_assertion_error?
|
40
|
-
end
|
41
|
-
|
42
30
|
# @return [Array<String>, nil]
|
43
31
|
def backtrace
|
44
|
-
if
|
32
|
+
if error
|
45
33
|
error.backtrace
|
46
34
|
end
|
47
35
|
end
|
48
36
|
|
49
37
|
# @return [String, nil]
|
50
38
|
def error_class_name
|
51
|
-
if
|
39
|
+
if error
|
52
40
|
error.class.to_s
|
53
41
|
end
|
54
42
|
end
|
55
43
|
|
56
44
|
# @return [String, nil]
|
57
45
|
def error_message
|
58
|
-
if
|
46
|
+
if error
|
59
47
|
error.to_s
|
60
48
|
end
|
61
49
|
end
|
62
50
|
|
63
|
-
# @return [String, nil]
|
64
|
-
def failure_additional_message
|
65
|
-
if failed?
|
66
|
-
error.additional_message
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
# @return [String, nil]
|
71
|
-
def failure_assertion_type_message
|
72
|
-
if failed?
|
73
|
-
error.assertion_type_message
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
51
|
# @return [Boolean]
|
78
52
|
def failed?
|
79
|
-
processed? &&
|
53
|
+
processed? && !error.nil?
|
80
54
|
end
|
81
55
|
|
82
56
|
# @return [Array<String>, nil]
|
83
57
|
def filtered_backtrace
|
84
58
|
@filtered_backtrace ||= begin
|
59
|
+
path = ::File.expand_path("../test_group.rb", __FILE__)
|
85
60
|
backtrace.reverse_each.each_with_object([]) do |line, lines|
|
86
|
-
if line.start_with?(
|
61
|
+
if line.start_with?(path)
|
87
62
|
break lines
|
88
63
|
end
|
89
|
-
unless
|
64
|
+
unless ::Petitest.configuration.backtrace_filters.any? { |filter| filter === line }
|
90
65
|
lines << line
|
91
66
|
end
|
92
67
|
end.reverse
|
93
68
|
end
|
94
69
|
end
|
95
70
|
|
96
|
-
# @return [Boolean]
|
97
|
-
def has_assertion_error?
|
98
|
-
error.is_a?(::Petitest::AssertionFailureError)
|
99
|
-
end
|
100
|
-
|
101
|
-
# @return [Boolean]
|
102
|
-
def has_error?
|
103
|
-
!error.nil?
|
104
|
-
end
|
105
|
-
|
106
71
|
# @return [Boolean]
|
107
72
|
def passed?
|
108
73
|
processed? && error.nil?
|
data/lib/petitest/test_group.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Petitest
|
2
2
|
class TestGroup
|
3
|
-
include ::Petitest::Assertions
|
4
|
-
|
5
3
|
TEST_METHOD_NAME_PREFIX = "test_"
|
6
4
|
|
7
5
|
class << self
|
@@ -16,7 +14,7 @@ module Petitest
|
|
16
14
|
descendants << sub_class
|
17
15
|
end
|
18
16
|
|
19
|
-
# @return [Array<Petit::TestCase]
|
17
|
+
# @return [Array<Petit::TestCase>]
|
20
18
|
def test_cases
|
21
19
|
descendants.flat_map do |test_group_class|
|
22
20
|
test_group_class.test_methods.map do |test_method|
|
@@ -47,5 +45,28 @@ module Petitest
|
|
47
45
|
end
|
48
46
|
end
|
49
47
|
end
|
48
|
+
|
49
|
+
# @param actual_or_message [Object]
|
50
|
+
# @param message [String, nil]
|
51
|
+
def assert(actual_or_message = nil, message = nil, &block)
|
52
|
+
if block
|
53
|
+
message = actual_or_message
|
54
|
+
check(message || "Given block returned falsy", &block)
|
55
|
+
else
|
56
|
+
actual = actual_or_message
|
57
|
+
check(message || "#{actual.inspect} is not truthy") do
|
58
|
+
actual
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
# @param message [String, nil]
|
66
|
+
def check(message, &block)
|
67
|
+
unless block.call
|
68
|
+
raise ::Petitest::AssertionFailureError.new(message)
|
69
|
+
end
|
70
|
+
end
|
50
71
|
end
|
51
72
|
end
|
@@ -30,7 +30,7 @@ module Petitest
|
|
30
30
|
def body
|
31
31
|
[
|
32
32
|
::Petitest::Texts::RaisedCodeText.new(test_case: test_case),
|
33
|
-
::Petitest::Texts::
|
33
|
+
::Petitest::Texts::ErrorMessageText.new(test_case: test_case),
|
34
34
|
::Petitest::Texts::FilteredBacktraceText.new(test_case: test_case),
|
35
35
|
].join("\n")
|
36
36
|
end
|
@@ -24,24 +24,32 @@ module Petitest
|
|
24
24
|
|
25
25
|
# @return [String, nil]
|
26
26
|
def caller_file_content
|
27
|
-
if ::FileTest.file?(caller_path)
|
27
|
+
if caller_path && ::FileTest.file?(caller_path)
|
28
28
|
::File.read(caller_path)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
# @return [String]
|
32
|
+
# @return [String, nil]
|
33
33
|
def caller_line_number
|
34
|
-
caller_segments[1]
|
34
|
+
if caller_segments[1]
|
35
|
+
caller_segments[1].to_i
|
36
|
+
end
|
35
37
|
end
|
36
38
|
|
37
|
-
# @return [String]
|
39
|
+
# @return [String, nil]
|
38
40
|
def caller_path
|
39
41
|
caller_segments[0]
|
40
42
|
end
|
41
43
|
|
42
44
|
# @return [Array<String>]
|
43
45
|
def caller_segments
|
44
|
-
@caller_segments ||=
|
46
|
+
@caller_segments ||= begin
|
47
|
+
if test_case.filtered_backtrace[0]
|
48
|
+
test_case.filtered_backtrace[0].split(":", 3)
|
49
|
+
else
|
50
|
+
[]
|
51
|
+
end
|
52
|
+
end
|
45
53
|
end
|
46
54
|
end
|
47
55
|
end
|
@@ -28,18 +28,34 @@ module Petitest
|
|
28
28
|
# @note Override
|
29
29
|
def to_s
|
30
30
|
[
|
31
|
-
|
32
|
-
|
33
|
-
::Petitest::Texts::FailuresText.new(test_cases: test_cases.select(&:failed?)),
|
34
|
-
::Petitest::Texts::ErrorsText.new(test_cases: test_cases.select(&:aborted?)),
|
35
|
-
::Petitest::Texts::TestCountsText.new(test_cases: test_cases),
|
36
|
-
::Petitest::Texts::TimesText.new(
|
37
|
-
finished_at: finished_at,
|
38
|
-
started_at: started_at,
|
39
|
-
),
|
40
|
-
].join("\n\n"),
|
31
|
+
header,
|
32
|
+
body,
|
41
33
|
].join
|
42
34
|
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
# @return [String]
|
39
|
+
def body
|
40
|
+
texts = []
|
41
|
+
texts << ::Petitest::Texts::FailuresText.new(test_cases: test_cases_failed) unless test_cases_failed.empty?
|
42
|
+
texts << ::Petitest::Texts::TestCountsText.new(test_cases: test_cases)
|
43
|
+
texts << ::Petitest::Texts::TimesText.new(
|
44
|
+
finished_at: finished_at,
|
45
|
+
started_at: started_at,
|
46
|
+
)
|
47
|
+
texts.join("\n\n")
|
48
|
+
end
|
49
|
+
|
50
|
+
# @return [String]
|
51
|
+
def header
|
52
|
+
::Petitest::Texts::TestCasesResultMarginTopText.new(test_cases: test_cases).to_s
|
53
|
+
end
|
54
|
+
|
55
|
+
# @return [Array<Petitest::TestCase>]
|
56
|
+
def test_cases_failed
|
57
|
+
@test_cases_failed ||= test_cases.select(&:failed?)
|
58
|
+
end
|
43
59
|
end
|
44
60
|
end
|
45
61
|
end
|
@@ -27,16 +27,10 @@ module Petitest
|
|
27
27
|
text_of_count_of_test_cases,
|
28
28
|
text_of_count_of_passed_test_cases,
|
29
29
|
text_of_count_of_failed_test_cases,
|
30
|
-
text_of_count_of_aborted_test_cases,
|
31
30
|
text_of_count_of_skipped_test_cases,
|
32
31
|
].join("\n")
|
33
32
|
end
|
34
33
|
|
35
|
-
# @return [Integer]
|
36
|
-
def count_of_aborted_test_cases
|
37
|
-
test_cases.select(&:aborted?).length
|
38
|
-
end
|
39
|
-
|
40
34
|
# @return [Integer]
|
41
35
|
def count_of_failed_test_cases
|
42
36
|
test_cases.select(&:failed?).length
|
@@ -67,14 +61,9 @@ module Petitest
|
|
67
61
|
@max_digits_length ||= count_of_test_cases.to_s.length
|
68
62
|
end
|
69
63
|
|
70
|
-
# @return [String]
|
71
|
-
def text_of_count_of_aborted_test_cases
|
72
|
-
colorize("%#{max_digits_length}d errors" % count_of_aborted_test_cases, :error)
|
73
|
-
end
|
74
|
-
|
75
64
|
# @return [String]
|
76
65
|
def text_of_count_of_failed_test_cases
|
77
|
-
colorize("%#{max_digits_length}d failures" % count_of_failed_test_cases, :
|
66
|
+
colorize("%#{max_digits_length}d failures" % count_of_failed_test_cases, :error)
|
78
67
|
end
|
79
68
|
|
80
69
|
# @return [String]
|
data/lib/petitest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: petitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,7 +53,6 @@ files:
|
|
53
53
|
- Rakefile
|
54
54
|
- lib/petitest.rb
|
55
55
|
- lib/petitest/assertion_failure_error.rb
|
56
|
-
- lib/petitest/assertions.rb
|
57
56
|
- lib/petitest/autorun.rb
|
58
57
|
- lib/petitest/configuration.rb
|
59
58
|
- lib/petitest/subscriber_concerns/output_concern.rb
|
@@ -67,9 +66,6 @@ files:
|
|
67
66
|
- lib/petitest/test_method.rb
|
68
67
|
- lib/petitest/texts/base_text.rb
|
69
68
|
- lib/petitest/texts/error_message_text.rb
|
70
|
-
- lib/petitest/texts/errors_element_text.rb
|
71
|
-
- lib/petitest/texts/errors_text.rb
|
72
|
-
- lib/petitest/texts/failure_message_text.rb
|
73
69
|
- lib/petitest/texts/failures_element_text.rb
|
74
70
|
- lib/petitest/texts/failures_text.rb
|
75
71
|
- lib/petitest/texts/filtered_backtrace_text.rb
|
data/lib/petitest/assertions.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
module Petitest
|
2
|
-
module Assertions
|
3
|
-
# @param actual_or_message [Object]
|
4
|
-
# @param message [String, nil]
|
5
|
-
def assert(actual_or_message = nil, message = nil, &block)
|
6
|
-
if block
|
7
|
-
assert_block(actual_or_message, &block)
|
8
|
-
else
|
9
|
-
actual = actual_or_message
|
10
|
-
check(
|
11
|
-
message: message,
|
12
|
-
template: "%{actual} is not truthy",
|
13
|
-
template_variables: {
|
14
|
-
actual: actual,
|
15
|
-
},
|
16
|
-
) do
|
17
|
-
actual
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# @param message [String, nil]
|
23
|
-
def assert_block(message = nil, &block)
|
24
|
-
check(
|
25
|
-
message: message,
|
26
|
-
template: "Given block returned falsy",
|
27
|
-
&block
|
28
|
-
)
|
29
|
-
end
|
30
|
-
|
31
|
-
# @param expected [Object]
|
32
|
-
# @param actual [Object]
|
33
|
-
# @param message [String, nil]
|
34
|
-
def assert_equal(expected, actual, message = nil)
|
35
|
-
check(
|
36
|
-
message: message,
|
37
|
-
template: "%{expected} expected but was %{actual}",
|
38
|
-
template_variables: {
|
39
|
-
actual: actual,
|
40
|
-
expected: expected,
|
41
|
-
},
|
42
|
-
) do
|
43
|
-
expected == actual
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
private
|
48
|
-
|
49
|
-
# @param message [String, nil]
|
50
|
-
# @param template [String]
|
51
|
-
# @param template_variables [Hash, nil]
|
52
|
-
def check(
|
53
|
-
message:,
|
54
|
-
template:,
|
55
|
-
template_variables: {}
|
56
|
-
)
|
57
|
-
unless yield
|
58
|
-
raise ::Petitest::AssertionFailureError.new(
|
59
|
-
additional_message: message,
|
60
|
-
template: template,
|
61
|
-
template_variables: template_variables,
|
62
|
-
)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
require "petitest/texts/base_text"
|
2
|
-
|
3
|
-
module Petitest
|
4
|
-
module Texts
|
5
|
-
class ErrorsElementText < ::Petitest::Texts::BaseText
|
6
|
-
# @return [Integer]
|
7
|
-
attr_reader :index
|
8
|
-
|
9
|
-
# @return [Petitest::TestCase]
|
10
|
-
attr_reader :test_case
|
11
|
-
|
12
|
-
# @param index [Integer]
|
13
|
-
# @param test_case [Petitest::TestCase]
|
14
|
-
def initialize(index:, test_case:)
|
15
|
-
@index = index
|
16
|
-
@test_case = test_case
|
17
|
-
end
|
18
|
-
|
19
|
-
# @note Override
|
20
|
-
def to_s
|
21
|
-
[
|
22
|
-
heading,
|
23
|
-
indent(body, 2)
|
24
|
-
].join("\n")
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
# @return [String]
|
30
|
-
def body
|
31
|
-
[
|
32
|
-
::Petitest::Texts::RaisedCodeText.new(test_case: test_case),
|
33
|
-
::Petitest::Texts::ErrorMessageText.new(test_case: test_case),
|
34
|
-
::Petitest::Texts::FilteredBacktraceText.new(test_case: test_case),
|
35
|
-
].join("\n")
|
36
|
-
end
|
37
|
-
|
38
|
-
# @return [String]
|
39
|
-
def heading
|
40
|
-
"#{ordinal_number}) #{test_signature}"
|
41
|
-
end
|
42
|
-
|
43
|
-
# @return [Integer]
|
44
|
-
def ordinal_number
|
45
|
-
index + 1
|
46
|
-
end
|
47
|
-
|
48
|
-
# @return [String]
|
49
|
-
def test_signature
|
50
|
-
test_case.test_signature
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require "petitest/texts/base_text"
|
2
|
-
|
3
|
-
module Petitest
|
4
|
-
module Texts
|
5
|
-
class ErrorsText < ::Petitest::Texts::BaseText
|
6
|
-
# @return [Array<Petitest::TestCase>]
|
7
|
-
attr_reader :test_cases
|
8
|
-
|
9
|
-
# @param test_cases [Array<Petitest::TestCase>]
|
10
|
-
def initialize(test_cases:)
|
11
|
-
@test_cases = test_cases
|
12
|
-
end
|
13
|
-
|
14
|
-
# @note Override
|
15
|
-
def to_s
|
16
|
-
[
|
17
|
-
heading,
|
18
|
-
indent(body, 2),
|
19
|
-
].join("\n\n")
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
# @return [String]
|
25
|
-
def body
|
26
|
-
errors_element_texts.join("\n\n")
|
27
|
-
end
|
28
|
-
|
29
|
-
# @return [Array<Petitest::Textx::FailuresElementText>]
|
30
|
-
def errors_element_texts
|
31
|
-
test_cases.map.with_index do |test_case, index|
|
32
|
-
::Petitest::Texts::ErrorsElementText.new(
|
33
|
-
index: index,
|
34
|
-
test_case: test_case,
|
35
|
-
)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# @return [String]
|
40
|
-
def heading
|
41
|
-
"Errors:"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require "petitest/texts/base_text"
|
2
|
-
|
3
|
-
module Petitest
|
4
|
-
module Texts
|
5
|
-
class FailureMessageText < ::Petitest::Texts::BaseText
|
6
|
-
# @return [Petitest::TestCase]
|
7
|
-
attr_reader :test_case
|
8
|
-
|
9
|
-
# @param test_case [Petitest::TestCase]
|
10
|
-
def initialize(test_case:)
|
11
|
-
@test_case = test_case
|
12
|
-
end
|
13
|
-
|
14
|
-
# @note Override
|
15
|
-
def to_s
|
16
|
-
colorize(
|
17
|
-
[
|
18
|
-
test_case.failure_assertion_type_message,
|
19
|
-
test_case.failure_additional_message,
|
20
|
-
].compact.join("\n"),
|
21
|
-
:failure,
|
22
|
-
)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|