test-unit 3.1.5 → 3.6.1
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 +5 -5
- data/BSDL +24 -0
- data/COPYING +41 -41
- data/README.md +24 -17
- data/Rakefile +21 -24
- data/doc/text/getting-started.md +246 -0
- data/doc/text/news.md +797 -56
- data/lib/test/unit/assertion-failed-error.rb +35 -0
- data/lib/test/unit/assertions.rb +542 -220
- data/lib/test/unit/attribute.rb +78 -4
- data/lib/test/unit/auto-runner-loader.rb +17 -0
- data/lib/test/unit/autorunner.rb +175 -78
- data/lib/test/unit/code-snippet-fetcher.rb +7 -7
- data/lib/test/unit/collector/descendant.rb +1 -0
- data/lib/test/unit/collector/dir.rb +4 -2
- data/lib/test/unit/collector/load.rb +25 -15
- data/lib/test/unit/collector/objectspace.rb +1 -0
- data/lib/test/unit/collector.rb +31 -0
- data/lib/test/unit/color-scheme.rb +29 -2
- data/lib/test/unit/data-sets.rb +127 -0
- data/lib/test/unit/data.rb +121 -12
- data/lib/test/unit/diff.rb +10 -11
- data/lib/test/unit/fixture.rb +77 -27
- data/lib/test/unit/notification.rb +9 -7
- data/lib/test/unit/omission.rb +34 -31
- data/lib/test/unit/pending.rb +12 -11
- data/lib/test/unit/priority.rb +7 -5
- data/lib/test/unit/runner/console.rb +20 -1
- data/lib/test/unit/test-suite-creator.rb +30 -9
- data/lib/test/unit/testcase.rb +349 -196
- data/lib/test/unit/testresult.rb +7 -0
- data/lib/test/unit/testsuite.rb +1 -1
- data/lib/test/unit/ui/console/testrunner.rb +171 -60
- data/lib/test/unit/ui/emacs/testrunner.rb +5 -5
- data/lib/test/unit/ui/testrunnermediator.rb +9 -7
- data/lib/test/unit/util/backtracefilter.rb +17 -5
- data/lib/test/unit/util/memory-usage.rb +47 -0
- data/lib/test/unit/util/observable.rb +2 -2
- data/lib/test/unit/util/output.rb +5 -4
- data/lib/test/unit/util/procwrapper.rb +4 -4
- data/lib/test/unit/version.rb +1 -1
- data/lib/test/unit/warning.rb +3 -0
- data/lib/test/unit.rb +177 -161
- data/lib/test-unit.rb +2 -17
- metadata +20 -94
- data/GPL +0 -339
- data/LGPL +0 -502
- data/test/collector/test-descendant.rb +0 -178
- data/test/collector/test-load.rb +0 -442
- data/test/collector/test_dir.rb +0 -406
- data/test/collector/test_objectspace.rb +0 -100
- data/test/fixtures/header-label.csv +0 -3
- data/test/fixtures/header-label.tsv +0 -3
- data/test/fixtures/header.csv +0 -3
- data/test/fixtures/header.tsv +0 -3
- data/test/fixtures/no-header.csv +0 -2
- data/test/fixtures/no-header.tsv +0 -2
- data/test/fixtures/plus.csv +0 -3
- data/test/run-test.rb +0 -22
- data/test/test-assertions.rb +0 -2157
- data/test/test-attribute-matcher.rb +0 -38
- data/test/test-attribute.rb +0 -123
- data/test/test-code-snippet.rb +0 -37
- data/test/test-color-scheme.rb +0 -82
- data/test/test-color.rb +0 -47
- data/test/test-data.rb +0 -281
- data/test/test-diff.rb +0 -518
- data/test/test-emacs-runner.rb +0 -60
- data/test/test-error.rb +0 -26
- data/test/test-failure.rb +0 -33
- data/test/test-fault-location-detector.rb +0 -163
- data/test/test-fixture.rb +0 -659
- data/test/test-notification.rb +0 -33
- data/test/test-omission.rb +0 -81
- data/test/test-pending.rb +0 -70
- data/test/test-priority.rb +0 -173
- data/test/test-test-case.rb +0 -1171
- data/test/test-test-result.rb +0 -113
- data/test/test-test-suite-creator.rb +0 -97
- data/test/test-test-suite.rb +0 -150
- data/test/testunit-test-util.rb +0 -31
- data/test/ui/test_testrunmediator.rb +0 -20
- data/test/util/test-method-owner-finder.rb +0 -38
- data/test/util/test-output.rb +0 -11
- data/test/util/test_backtracefilter.rb +0 -41
- data/test/util/test_observable.rb +0 -102
- data/test/util/test_procwrapper.rb +0 -36
@@ -1,163 +0,0 @@
|
|
1
|
-
# Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com>
|
2
|
-
#
|
3
|
-
# License: Ruby's
|
4
|
-
|
5
|
-
require "test-unit"
|
6
|
-
require "test/unit/fault-location-detector"
|
7
|
-
require "testunit-test-util"
|
8
|
-
|
9
|
-
class TestFaultLocationDetector < Test::Unit::TestCase
|
10
|
-
include TestUnitTestUtil
|
11
|
-
|
12
|
-
def setup
|
13
|
-
@fetcher = Test::Unit::CodeSnippetFetcher.new
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
def run_test_case(test_case)
|
18
|
-
suite = test_case.suite
|
19
|
-
result = Test::Unit::TestResult.new
|
20
|
-
suite.run(result) {}
|
21
|
-
result.faults[0]
|
22
|
-
end
|
23
|
-
|
24
|
-
def assert_detect(fault, target_line_number)
|
25
|
-
detector = Test::Unit::FaultLocationDetector.new(fault, @fetcher)
|
26
|
-
|
27
|
-
expected_backtrace_entries_until_detected = []
|
28
|
-
fault.location.each do |backtrace_entry|
|
29
|
-
expected_backtrace_entries_until_detected << backtrace_entry
|
30
|
-
_, line_number, = detector.split_backtrace_entry(backtrace_entry)
|
31
|
-
break if target_line_number == line_number
|
32
|
-
end
|
33
|
-
|
34
|
-
actual_backtrace_entries_until_detected = []
|
35
|
-
fault.location.each do |backtrace_entry|
|
36
|
-
actual_backtrace_entries_until_detected << backtrace_entry
|
37
|
-
break if detector.target?(backtrace_entry)
|
38
|
-
end
|
39
|
-
|
40
|
-
assert_equal(expected_backtrace_entries_until_detected,
|
41
|
-
actual_backtrace_entries_until_detected)
|
42
|
-
end
|
43
|
-
|
44
|
-
module AlwaysFailAssertion
|
45
|
-
private
|
46
|
-
def assert_always_failed
|
47
|
-
assert_true(false)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
class TestSourceLocation < self
|
52
|
-
setup
|
53
|
-
def setup_check_source_location
|
54
|
-
unless lambda {}.respond_to?(:source_location)
|
55
|
-
omit("Need Proc#source_location")
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_detected
|
60
|
-
target_line_number = nil
|
61
|
-
test_case = Class.new(Test::Unit::TestCase) do
|
62
|
-
include AlwaysFailAssertion
|
63
|
-
|
64
|
-
test "failed" do
|
65
|
-
target_line_number = __LINE__; assert_always_failed
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
fault = run_test_case(test_case)
|
70
|
-
assert_detect(fault, target_line_number)
|
71
|
-
end
|
72
|
-
|
73
|
-
class TestOneLine < self
|
74
|
-
def test_brace
|
75
|
-
target_line_number = nil
|
76
|
-
test_case = Class.new(Test::Unit::TestCase) do
|
77
|
-
include AlwaysFailAssertion
|
78
|
-
|
79
|
-
test("failed") {target_line_number = __LINE__; assert_always_failed}
|
80
|
-
|
81
|
-
def other_method
|
82
|
-
# body
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
fault = run_test_case(test_case)
|
87
|
-
assert_detect(fault, target_line_number)
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_do_end
|
91
|
-
target_line_number = nil
|
92
|
-
test_case = Class.new(Test::Unit::TestCase) do
|
93
|
-
include AlwaysFailAssertion
|
94
|
-
|
95
|
-
test "failed" do target_line_number = __LINE__; assert_always_failed; end
|
96
|
-
|
97
|
-
def other_method
|
98
|
-
# body
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
fault = run_test_case(test_case)
|
103
|
-
assert_detect(fault, target_line_number)
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
class TestMethodName < self
|
109
|
-
def test_detected
|
110
|
-
test_case = Class.new(Test::Unit::TestCase) do
|
111
|
-
include AlwaysFailAssertion
|
112
|
-
|
113
|
-
class << self
|
114
|
-
def target_line_number
|
115
|
-
@@target_line_number
|
116
|
-
end
|
117
|
-
|
118
|
-
def target_line_number=(line_number)
|
119
|
-
@@target_line_number = line_number
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_failed
|
124
|
-
self.class.target_line_number = __LINE__; assert_always_failed
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
fault = run_test_case(test_case)
|
129
|
-
assert_detect(fault, test_case.target_line_number)
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
class TestInBlock < self
|
134
|
-
def test_in_block
|
135
|
-
test_case = Class.new(Test::Unit::TestCase) do
|
136
|
-
include AlwaysFailAssertion
|
137
|
-
|
138
|
-
class << self
|
139
|
-
def target_line_number
|
140
|
-
@@target_line_number
|
141
|
-
end
|
142
|
-
|
143
|
-
def target_line_number=(line_number)
|
144
|
-
@@target_line_number = line_number
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
def run_yield
|
149
|
-
yield
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_failed
|
153
|
-
run_yield do
|
154
|
-
self.class.target_line_number = __LINE__; assert_always_failed
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
fault = run_test_case(test_case)
|
160
|
-
assert_detect(fault, test_case.target_line_number)
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|