test-unit-ext 0.1.0 → 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.
@@ -65,7 +65,7 @@ class TestMetadata < Test::Unit::TestCase
65
65
  def test_show_metadata
66
66
  assert_stack_size_line = search_line('assert_equal(0, @stack.size)')
67
67
  assert_peek_line = search_line('assert_equal(2, @stack.peek)')
68
- first_arg_end_line = search_line("\"<11>.\"],")
68
+ first_arg_end_line = search_line("\"+ 11\"],")
69
69
  method_name = "test_show_metadata"
70
70
  assert_result(["Failure:\n" \
71
71
  "test_peek(TestMetadata::TestStack)\n" \
@@ -73,28 +73,37 @@ class TestMetadata < Test::Unit::TestCase
73
73
  "#{__FILE__}:#{assert_peek_line}:in `test_peek'\n" \
74
74
  "#{__FILE__}:#{first_arg_end_line}:in `#{method_name}':\n" \
75
75
  "<2> expected but was\n" \
76
- "<1>.",
76
+ "<1>.\n" \
77
+ "diff:\n" \
78
+ "- 2\n" \
79
+ "+ 1",
77
80
  "Failure:\n" \
78
81
  "test_bug_1234(TestMetadata::TestStack)\n" \
79
82
  " bug: 1234\n" \
80
83
  "#{__FILE__}:#{assert_stack_size_line}:in `test_bug_1234'\n" \
81
84
  "#{__FILE__}:#{first_arg_end_line}:in `#{method_name}':\n" \
82
85
  "<0> expected but was\n" \
83
- "<11>."],
86
+ "<11>.\n" \
87
+ "diff:\n" \
88
+ "- 0\n" \
89
+ "+ 11"],
84
90
  [],
85
91
  ["test_peek", "test_bug_1234"])
86
92
  end
87
93
 
88
94
  def test_not_show_metadata
89
95
  assert_line = search_line('assert_equal(1, @stack.size')
90
- first_arg_end_line = search_line("\"<12>.\"],")
96
+ first_arg_end_line = search_line("\"+ 12\"],")
91
97
  method_name = "test_not_show_metadata"
92
98
  assert_result(["Failure:\n" \
93
99
  "test_no_metadata(TestMetadata::TestStack)\n" \
94
100
  "#{__FILE__}:#{assert_line}:in `test_no_metadata'\n" \
95
101
  "#{__FILE__}:#{first_arg_end_line}:in `#{method_name}':\n" \
96
102
  "<1> expected but was\n" \
97
- "<12>."],
103
+ "<12>.\n" \
104
+ "diff:\n" \
105
+ "- 1\n" \
106
+ "+ 12"],
98
107
  [],
99
108
  ["test_no_metadata"])
100
109
  end
@@ -0,0 +1,163 @@
1
+ require 'test-unit-ext'
2
+
3
+ class TestXMLReport < Test::Unit::TestCase
4
+ class TestCase < Test::Unit::TestCase
5
+ def default_test
6
+ end
7
+
8
+ def _test_success
9
+ assert(true)
10
+ end
11
+
12
+ TEST_FAILURE_LINE = __LINE__ + 3
13
+ bug 1234
14
+ def _test_failure
15
+ assert(false)
16
+ end
17
+
18
+ TEST_ERROR_LINE = __LINE__ + 2
19
+ def _test_error
20
+ non_existence_method()
21
+ end
22
+
23
+ def inspect
24
+ "TEST-CASE"
25
+ end
26
+ end
27
+
28
+ include ERB::Util
29
+
30
+ def test_empty_test
31
+ assert_xml("<test_logs/>", suite)
32
+ end
33
+
34
+ def test_success_result
35
+ elapsed = "0.001"
36
+ assert_xml(<<-XML, suite([TestCase.new("_test_success")]), elapsed)
37
+ <test_logs>
38
+ <test_log>
39
+ <test_case>
40
+ <name>TestXMLReport::TestCase</name>
41
+ <description/>
42
+ </test_case>
43
+ <name>_test_success</name>
44
+ <description/>
45
+ <result>
46
+ <status>success</status>
47
+ <detail></detail>
48
+ <elapsed>#{elapsed}</elapsed>
49
+ </result>
50
+ </test_log>
51
+ </test_logs>
52
+ XML
53
+ end
54
+
55
+ def test_failure_result
56
+ elapsed = "0.001"
57
+ backtrace_line = __LINE__ + 1
58
+ assert_xml(<<-XML, suite([TestCase.new("_test_failure")]), elapsed)
59
+ <test_logs>
60
+ <test_log>
61
+ <test_case>
62
+ <name>TestXMLReport::TestCase</name>
63
+ <description/>
64
+ </test_case>
65
+ <name>_test_failure</name>
66
+ <description/>
67
+ <metadata>
68
+ <item>
69
+ <name>bug</name>
70
+ <value>1234</value>
71
+ </item>
72
+ </metadata>
73
+ <result>
74
+ <status>failure</status>
75
+ <detail>&lt;false&gt; is not true.</detail>
76
+ <elapsed>#{elapsed}</elapsed>
77
+ </result>
78
+ <backtrace>
79
+ <entry>
80
+ <file>#{__FILE__}</file>
81
+ <line>#{TestCase::TEST_FAILURE_LINE}</line>
82
+ <info>in `_test_failure'</info>
83
+ </entry>
84
+ <entry>
85
+ <file>#{__FILE__}</file>
86
+ <line>#{TEST_RUN_LINE}</line>
87
+ <info>in `assert_xml'</info>
88
+ </entry>
89
+ <entry>
90
+ <file>#{__FILE__}</file>
91
+ <line>#{backtrace_line}</line>
92
+ <info>in `test_failure_result'</info>
93
+ </entry>
94
+ </backtrace>
95
+ </test_log>
96
+ </test_logs>
97
+ XML
98
+ end
99
+
100
+ def test_error_result
101
+ test = TestCase.new("_test_error")
102
+ detail = "NoMethodError: undefined method `non_existence_method' " +
103
+ "for TEST-CASE:#{test.class.name}"
104
+ elapsed = "0.001"
105
+ backtrace_line = __LINE__ + 1
106
+ assert_xml(<<-XML, suite([test]), elapsed)
107
+ <test_logs>
108
+ <test_log>
109
+ <test_case>
110
+ <name>TestXMLReport::TestCase</name>
111
+ <description/>
112
+ </test_case>
113
+ <name>_test_error</name>
114
+ <description/>
115
+ <result>
116
+ <status>error</status>
117
+ <detail>#{h(detail)}</detail>
118
+ <elapsed>#{elapsed}</elapsed>
119
+ </result>
120
+ <backtrace>
121
+ <entry>
122
+ <file>#{__FILE__}</file>
123
+ <line>#{TestCase::TEST_ERROR_LINE}</line>
124
+ <info>in `_test_error'</info>
125
+ </entry>
126
+ <entry>
127
+ <file>#{__FILE__}</file>
128
+ <line>#{TEST_RUN_LINE}</line>
129
+ <info>in `assert_xml'</info>
130
+ </entry>
131
+ <entry>
132
+ <file>#{__FILE__}</file>
133
+ <line>#{backtrace_line}</line>
134
+ <info>in `test_error_result'</info>
135
+ </entry>
136
+ </backtrace>
137
+ </test_log>
138
+ </test_logs>
139
+ XML
140
+ end
141
+
142
+ private
143
+ def suite(tests=[], name="Unnamed TestSuite")
144
+ test_suite = Test::Unit::TestSuite.new(name)
145
+ tests.each do |test|
146
+ test_suite << test
147
+ end
148
+ test_suite
149
+ end
150
+
151
+ TEST_RUN_LINE = __LINE__ + 2
152
+ def assert_xml(expected, suite, normalized_elapsed=nil)
153
+ result = Test::Unit::UI::Console::TestRunner.run(suite,
154
+ Test::Unit::UI::SILENT)
155
+ xml = result.to_xml
156
+ if xml and normalized_elapsed
157
+ xml = xml.gsub(/<elapsed>[\d.]+<\/elapsed>/) do
158
+ "<elapsed>#{normalized_elapsed}</elapsed>"
159
+ end
160
+ end
161
+ assert_equal(expected, xml)
162
+ end
163
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-unit-ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-02-21 00:00:00 +09:00
12
+ date: 2008-03-03 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -37,6 +37,7 @@ files:
37
37
  - html/readme.html.ja
38
38
  - lib/test-unit-ext.rb
39
39
  - lib/test-unit-ext/always-show-result.rb
40
+ - lib/test-unit-ext/assertions.rb
40
41
  - lib/test-unit-ext/backtrace-filter.rb
41
42
  - lib/test-unit-ext/color.rb
42
43
  - lib/test-unit-ext/colorized-runner.rb
@@ -45,11 +46,13 @@ files:
45
46
  - lib/test-unit-ext/metadata.rb
46
47
  - lib/test-unit-ext/priority.rb
47
48
  - lib/test-unit-ext/version.rb
49
+ - lib/test-unit-ext/xml-report.rb
48
50
  - misc/rd2html.rb
49
51
  - test/run-test.rb
50
52
  - test/test_color.rb
51
53
  - test/test_diff.rb
52
54
  - test/test_metadata.rb
55
+ - test/test_xml_report.rb
53
56
  has_rdoc: true
54
57
  homepage: http://test-unit-ext.rubyforge.org/
55
58
  post_install_message:
@@ -81,3 +84,4 @@ test_files:
81
84
  - test/test_diff.rb
82
85
  - test/test_metadata.rb
83
86
  - test/test_color.rb
87
+ - test/test_xml_report.rb