petitest 0.2.1 → 0.3.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 +14 -1
- data/README.md +196 -45
- data/images/demo.png +0 -0
- data/lib/petitest.rb +9 -7
- data/lib/petitest/assertion_skip_error.rb +4 -0
- data/lib/petitest/autorun.rb +4 -2
- data/lib/petitest/dsl.rb +27 -0
- data/lib/petitest/subscriber_concerns/time_concern.rb +2 -2
- data/lib/petitest/subscribers/base_subscriber.rb +12 -12
- data/lib/petitest/subscribers/document_report_subscriber.rb +7 -7
- data/lib/petitest/subscribers/json_report_subscriber.rb +13 -13
- data/lib/petitest/subscribers/progress_report_subscriber.rb +5 -5
- data/lib/petitest/test.rb +142 -0
- data/lib/petitest/test_group.rb +35 -125
- data/lib/petitest/test_plan.rb +102 -0
- data/lib/petitest/{test_case.rb → test_runner.rb} +38 -21
- data/lib/petitest/texts/error_message_text.rb +7 -7
- data/lib/petitest/texts/failures_element_text.rb +9 -14
- data/lib/petitest/texts/failures_text.rb +7 -7
- data/lib/petitest/texts/filtered_backtrace_text.rb +6 -6
- data/lib/petitest/texts/raised_code_text.rb +7 -7
- data/lib/petitest/texts/test_counts_text.rb +26 -26
- data/lib/petitest/texts/test_result_character_text.rb +27 -0
- data/lib/petitest/texts/test_result_line_text.rb +37 -0
- data/lib/petitest/texts/tests_result_margin_top_text.rb +24 -0
- data/lib/petitest/texts/{test_cases_result_text.rb → tests_result_text.rb} +14 -12
- data/lib/petitest/version.rb +1 -1
- metadata +12 -8
- data/lib/petitest/test_cases_runner.rb +0 -90
- data/lib/petitest/texts/test_case_result_character_text.rb +0 -27
- data/lib/petitest/texts/test_case_result_line_text.rb +0 -37
- data/lib/petitest/texts/test_cases_result_margin_top_text.rb +0 -24
@@ -0,0 +1,24 @@
|
|
1
|
+
require "petitest/texts/base_text"
|
2
|
+
|
3
|
+
module Petitest
|
4
|
+
module Texts
|
5
|
+
class TestsResultMarginTopText < ::Petitest::Texts::BaseText
|
6
|
+
# @return [Array<Petitest::Test>]
|
7
|
+
attr_reader :tests
|
8
|
+
|
9
|
+
# @param tests [Array<Petitest::Test>]
|
10
|
+
def initialize(tests:)
|
11
|
+
@tests = tests
|
12
|
+
end
|
13
|
+
|
14
|
+
# @note Override
|
15
|
+
def to_s
|
16
|
+
if tests.empty?
|
17
|
+
"\n"
|
18
|
+
else
|
19
|
+
"\n\n"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -2,27 +2,27 @@ require "petitest/texts/base_text"
|
|
2
2
|
|
3
3
|
module Petitest
|
4
4
|
module Texts
|
5
|
-
class
|
5
|
+
class TestsResultText < ::Petitest::Texts::BaseText
|
6
6
|
# @return [Time]
|
7
7
|
attr_reader :finished_at
|
8
8
|
|
9
9
|
# @return [Time]
|
10
10
|
attr_reader :started_at
|
11
11
|
|
12
|
-
# @return [Array<Petitest::
|
13
|
-
attr_reader :
|
12
|
+
# @return [Array<Petitest::Test>]
|
13
|
+
attr_reader :tests
|
14
14
|
|
15
15
|
# @param finished_at [Time]
|
16
16
|
# @param started_at [Time]
|
17
|
-
# @param
|
17
|
+
# @param tests [Array<Petitest::Test>]
|
18
18
|
def initialize(
|
19
19
|
finished_at:,
|
20
20
|
started_at:,
|
21
|
-
|
21
|
+
tests:
|
22
22
|
)
|
23
23
|
@finished_at = finished_at
|
24
24
|
@started_at = started_at
|
25
|
-
@
|
25
|
+
@tests = tests
|
26
26
|
end
|
27
27
|
|
28
28
|
# @note Override
|
@@ -38,8 +38,8 @@ module Petitest
|
|
38
38
|
# @return [String]
|
39
39
|
def body
|
40
40
|
texts = []
|
41
|
-
texts << ::Petitest::Texts::FailuresText.new(
|
42
|
-
texts << ::Petitest::Texts::TestCountsText.new(
|
41
|
+
texts << ::Petitest::Texts::FailuresText.new(tests: tests_failed) unless tests_failed.empty?
|
42
|
+
texts << ::Petitest::Texts::TestCountsText.new(tests: tests)
|
43
43
|
texts << ::Petitest::Texts::TimesText.new(
|
44
44
|
finished_at: finished_at,
|
45
45
|
started_at: started_at,
|
@@ -49,12 +49,14 @@ module Petitest
|
|
49
49
|
|
50
50
|
# @return [String]
|
51
51
|
def header
|
52
|
-
::Petitest::Texts::
|
52
|
+
::Petitest::Texts::TestsResultMarginTopText.new(tests: tests).to_s
|
53
53
|
end
|
54
54
|
|
55
|
-
# @return [Array<Petitest::
|
56
|
-
def
|
57
|
-
@
|
55
|
+
# @return [Array<Petitest::Test>]
|
56
|
+
def tests_failed
|
57
|
+
@tests_failed ||= tests.select do |test|
|
58
|
+
test.runner.failed?
|
59
|
+
end
|
58
60
|
end
|
59
61
|
end
|
60
62
|
end
|
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.3.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-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -65,32 +65,36 @@ files:
|
|
65
65
|
- LICENSE.txt
|
66
66
|
- README.md
|
67
67
|
- Rakefile
|
68
|
+
- images/demo.png
|
68
69
|
- lib/petitest.rb
|
69
70
|
- lib/petitest/assertion_failure_error.rb
|
71
|
+
- lib/petitest/assertion_skip_error.rb
|
70
72
|
- lib/petitest/autorun.rb
|
71
73
|
- lib/petitest/configuration.rb
|
74
|
+
- lib/petitest/dsl.rb
|
72
75
|
- lib/petitest/subscriber_concerns/output_concern.rb
|
73
76
|
- lib/petitest/subscriber_concerns/time_concern.rb
|
74
77
|
- lib/petitest/subscribers/base_subscriber.rb
|
75
78
|
- lib/petitest/subscribers/document_report_subscriber.rb
|
76
79
|
- lib/petitest/subscribers/json_report_subscriber.rb
|
77
80
|
- lib/petitest/subscribers/progress_report_subscriber.rb
|
78
|
-
- lib/petitest/
|
79
|
-
- lib/petitest/test_cases_runner.rb
|
81
|
+
- lib/petitest/test.rb
|
80
82
|
- lib/petitest/test_group.rb
|
81
83
|
- lib/petitest/test_groups.rb
|
82
84
|
- lib/petitest/test_method.rb
|
85
|
+
- lib/petitest/test_plan.rb
|
86
|
+
- lib/petitest/test_runner.rb
|
83
87
|
- lib/petitest/texts/base_text.rb
|
84
88
|
- lib/petitest/texts/error_message_text.rb
|
85
89
|
- lib/petitest/texts/failures_element_text.rb
|
86
90
|
- lib/petitest/texts/failures_text.rb
|
87
91
|
- lib/petitest/texts/filtered_backtrace_text.rb
|
88
92
|
- lib/petitest/texts/raised_code_text.rb
|
89
|
-
- lib/petitest/texts/test_case_result_character_text.rb
|
90
|
-
- lib/petitest/texts/test_case_result_line_text.rb
|
91
|
-
- lib/petitest/texts/test_cases_result_margin_top_text.rb
|
92
|
-
- lib/petitest/texts/test_cases_result_text.rb
|
93
93
|
- lib/petitest/texts/test_counts_text.rb
|
94
|
+
- lib/petitest/texts/test_result_character_text.rb
|
95
|
+
- lib/petitest/texts/test_result_line_text.rb
|
96
|
+
- lib/petitest/texts/tests_result_margin_top_text.rb
|
97
|
+
- lib/petitest/texts/tests_result_text.rb
|
94
98
|
- lib/petitest/texts/times_text.rb
|
95
99
|
- lib/petitest/version.rb
|
96
100
|
- petitest.gemspec
|
@@ -1,90 +0,0 @@
|
|
1
|
-
module Petitest
|
2
|
-
class TestCasesRunner
|
3
|
-
# @return [Array<Class>]
|
4
|
-
attr_reader :test_group_classes
|
5
|
-
|
6
|
-
# @param test_group_classes [Array<Class>]
|
7
|
-
def initialize(test_group_classes)
|
8
|
-
@test_group_classes = test_group_classes
|
9
|
-
end
|
10
|
-
|
11
|
-
# @return [Boolean]
|
12
|
-
def run
|
13
|
-
test_cases = test_group_classes.flat_map(&:test_cases_and_children_test_cases)
|
14
|
-
before_running_test_cases(test_cases)
|
15
|
-
test_group_classes.each do |test_group_class|
|
16
|
-
run_test_group(test_group_class)
|
17
|
-
end
|
18
|
-
after_running_test_cases(test_cases)
|
19
|
-
test_cases.all?(&:passed?)
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
# @param test_case [Petitest::TestCase]
|
25
|
-
def after_running_test_case(test_case)
|
26
|
-
subscribers.each do |subscriber|
|
27
|
-
subscriber.after_running_test_case(test_case)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# @param test_cases [Array<Petitest::TestCase>]
|
32
|
-
def after_running_test_cases(test_cases)
|
33
|
-
subscribers.each do |subscriber|
|
34
|
-
subscriber.after_running_test_cases(test_cases)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# @param test_group_class [Class]
|
39
|
-
def after_running_test_group(test_group_class)
|
40
|
-
subscribers.each do |subscriber|
|
41
|
-
subscriber.after_running_test_group(test_group_class)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# @param test_case [Petitest::TestCase]
|
46
|
-
def before_running_test_case(test_case)
|
47
|
-
subscribers.each do |subscriber|
|
48
|
-
subscriber.before_running_test_case(test_case)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# @param test_cases [Array<Petitest::TestCase>]
|
53
|
-
def before_running_test_cases(test_cases)
|
54
|
-
subscribers.each do |subscriber|
|
55
|
-
subscriber.before_running_test_cases(test_cases)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# @param test_group_class [Class]
|
60
|
-
def before_running_test_group(test_group_class)
|
61
|
-
subscribers.each do |subscriber|
|
62
|
-
subscriber.before_running_test_group(test_group_class)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
# @param test_case [Petitest::TestCase]
|
67
|
-
def run_test_case(test_case)
|
68
|
-
before_running_test_case(test_case)
|
69
|
-
test_case.run
|
70
|
-
after_running_test_case(test_case)
|
71
|
-
end
|
72
|
-
|
73
|
-
# @param test_group_class [Class]
|
74
|
-
def run_test_group(test_group_class)
|
75
|
-
before_running_test_group(test_group_class)
|
76
|
-
test_group_class.test_cases.each do |test_case|
|
77
|
-
run_test_case(test_case)
|
78
|
-
end
|
79
|
-
test_group_class.children.each do |child_test_group_class|
|
80
|
-
run_test_group(child_test_group_class)
|
81
|
-
end
|
82
|
-
after_running_test_group(test_group_class)
|
83
|
-
end
|
84
|
-
|
85
|
-
# @return [Array<Petitest::Subscribers::BaseSubscriber>]
|
86
|
-
def subscribers
|
87
|
-
::Petitest.configuration.subscribers
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "petitest/texts/base_text"
|
2
|
-
|
3
|
-
module Petitest
|
4
|
-
module Texts
|
5
|
-
class TestCaseResultCharacterText < ::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
|
-
case
|
17
|
-
when test_case.failed?
|
18
|
-
colorize("F", :error)
|
19
|
-
when test_case.skipped?
|
20
|
-
colorize("*", :skip)
|
21
|
-
else
|
22
|
-
"."
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require "petitest/texts/base_text"
|
2
|
-
|
3
|
-
module Petitest
|
4
|
-
module Texts
|
5
|
-
class TestCaseResultLineText < ::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
|
-
indent(
|
17
|
-
colorize("##{test_case.test_method.method_name}", color_type),
|
18
|
-
2 * (test_case.test_group_class.nest_level + 1),
|
19
|
-
)
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
# @return [Symbol]
|
25
|
-
def color_type
|
26
|
-
case
|
27
|
-
when test_case.failed?
|
28
|
-
:error
|
29
|
-
when test_case.skipped?
|
30
|
-
:skip
|
31
|
-
else
|
32
|
-
:pass
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require "petitest/texts/base_text"
|
2
|
-
|
3
|
-
module Petitest
|
4
|
-
module Texts
|
5
|
-
class TestCasesResultMarginTopText < ::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
|
-
if test_cases.empty?
|
17
|
-
"\n"
|
18
|
-
else
|
19
|
-
"\n\n"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|