minitest-ci 1.0.2 → 1.0.3
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.
- data/lib/minitest/ci.rb +49 -7
- data/test/test_minitest_ci.rb +24 -6
- metadata +3 -35
data/lib/minitest/ci.rb
CHANGED
@@ -1,13 +1,37 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
begin
|
2
|
+
gem 'minitest', '2.6.0'
|
3
|
+
require "minitest/unit"
|
4
|
+
rescue Gem::LoadError => e
|
5
|
+
msg = [
|
6
|
+
'minitest version 2.6.0 required',
|
7
|
+
'try: gem install minitest -v 2.6.0'
|
8
|
+
]
|
9
|
+
raise e.exception msg.join("\n")
|
10
|
+
end
|
4
11
|
|
5
12
|
require 'fileutils'
|
6
13
|
require 'cgi'
|
7
14
|
|
8
15
|
module MiniTest
|
9
16
|
module Ci
|
10
|
-
|
17
|
+
###
|
18
|
+
# copied
|
19
|
+
file = if RUBY_VERSION =~ /^1\.9/ then # bt's expanded, but __FILE__ isn't :(
|
20
|
+
File.expand_path __FILE__
|
21
|
+
elsif __FILE__ =~ /^[^\.]/ then # assume both relative
|
22
|
+
require 'pathname'
|
23
|
+
pwd = Pathname.new Dir.pwd
|
24
|
+
pn = Pathname.new File.expand_path(__FILE__)
|
25
|
+
pn = File.join(".", pn.relative_path_from(pwd)) unless pn.relative?
|
26
|
+
pn.to_s
|
27
|
+
else # assume both are expanded
|
28
|
+
__FILE__
|
29
|
+
end
|
30
|
+
# end of copy
|
31
|
+
###
|
32
|
+
CI_MINI_DIR = File.dirname(File.dirname(file))
|
33
|
+
|
34
|
+
VERSION = '1.0.3'
|
11
35
|
|
12
36
|
@test_dir = nil #'test/reports'
|
13
37
|
@error = nil
|
@@ -55,6 +79,24 @@ module MiniTest
|
|
55
79
|
FileUtils.mkdir_p @test_dir
|
56
80
|
end
|
57
81
|
|
82
|
+
def escape o
|
83
|
+
CGI.escapeHTML(o.to_s)
|
84
|
+
end
|
85
|
+
|
86
|
+
# use original as well as filtering this file.
|
87
|
+
def filter_backtrace bt
|
88
|
+
bt = MiniTest::filter_backtrace bt
|
89
|
+
orig_mini_dir = MiniTest::MINI_DIR
|
90
|
+
|
91
|
+
orig_verbose, $VERBOSE = $VERBOSE, nil
|
92
|
+
|
93
|
+
MiniTest.const_set :MINI_DIR, CI_MINI_DIR
|
94
|
+
MiniTest::filter_backtrace bt
|
95
|
+
ensure
|
96
|
+
MiniTest.const_set :MINI_DIR, orig_mini_dir
|
97
|
+
$VERBOSE = orig_verbose
|
98
|
+
end
|
99
|
+
|
58
100
|
def generate_suite name, suite
|
59
101
|
total_time, assertions, errors, failures, skips = 0, 0, 0, 0, 0
|
60
102
|
suite.each do |_, t, a, e|
|
@@ -77,9 +119,9 @@ module MiniTest
|
|
77
119
|
suite.each do |method, time, asserts, error|
|
78
120
|
f.puts " <testcase time='#{"%6f" % time}' name='#{method}' assertions='#{asserts}'>"
|
79
121
|
if error
|
80
|
-
bt =
|
81
|
-
f.write " <#{type error} type='#{error.class}' message='#{
|
82
|
-
f.puts
|
122
|
+
bt = filter_backtrace(error.backtrace).join "\n"
|
123
|
+
f.write " <#{type error} type='#{escape error.class}' message='#{escape error.message}'>"
|
124
|
+
f.puts escape bt
|
83
125
|
f.puts " </#{type error}>"
|
84
126
|
end
|
85
127
|
f.puts " </testcase>"
|
data/test/test_minitest_ci.rb
CHANGED
@@ -20,9 +20,13 @@ class MockTestSuite < MiniTest::Unit::TestCase
|
|
20
20
|
pass
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
23
|
+
def test_invalid_characters_in_message
|
24
24
|
raise Object.new.inspect
|
25
25
|
end
|
26
|
+
|
27
|
+
def test_invalid_error_name
|
28
|
+
raise Class.new(Exception)
|
29
|
+
end
|
26
30
|
end
|
27
31
|
|
28
32
|
class TestMinitest
|
@@ -50,21 +54,22 @@ class TestMinitest::TestCi < MiniTest::Unit::TestCase
|
|
50
54
|
def setup
|
51
55
|
file = "#{MiniTest::Ci.test_dir}/TEST-MockTestSuite.xml"
|
52
56
|
assert File.exists?( file ), 'expected xml file to exists'
|
53
|
-
@
|
57
|
+
@file = File.read file
|
58
|
+
@doc = Nokogiri.parse @file
|
54
59
|
@doc = @doc.at_xpath('/testsuite')
|
55
60
|
end
|
56
61
|
|
57
62
|
def test_testsuite
|
58
63
|
assert_equal "1", @doc['skipped']
|
59
64
|
assert_equal "1", @doc['failures']
|
60
|
-
assert_equal "
|
65
|
+
assert_equal "4", @doc['errors']
|
61
66
|
assert_equal "2", @doc['assertions']
|
62
|
-
assert_equal "
|
67
|
+
assert_equal "6", @doc['tests']
|
63
68
|
assert_equal "MockTestSuite", @doc['name']
|
64
69
|
end
|
65
70
|
|
66
71
|
def test_testcase
|
67
|
-
assert_equal
|
72
|
+
assert_equal 6, @doc.children.count {|c| Nokogiri::XML::Element === c}
|
68
73
|
@doc.children.each do |c|
|
69
74
|
next unless Nokogiri::XML::Element === c
|
70
75
|
assert_equal 'testcase', c.name
|
@@ -86,13 +91,26 @@ class TestMinitest::TestCi < MiniTest::Unit::TestCase
|
|
86
91
|
assert_equal 'raise an error', error.at_xpath('failure')['message']
|
87
92
|
assert_equal '0', error['assertions']
|
88
93
|
|
89
|
-
error = @doc.at_xpath('/testsuite/testcase[@name="
|
94
|
+
error = @doc.at_xpath('/testsuite/testcase[@name="test_invalid_characters_in_message"]')
|
90
95
|
assert_match( /^#<Object/, error.at_xpath('failure')['message'] )
|
91
96
|
assert_equal '0', error['assertions']
|
97
|
+
|
98
|
+
error = @doc.at_xpath('/testsuite/testcase[@name="test_invalid_error_name"]')
|
99
|
+
assert_match( /^#<Class/, error.at_xpath('failure')['message'] )
|
100
|
+
assert_equal '0', error['assertions']
|
92
101
|
end
|
93
102
|
|
94
103
|
def test_output
|
95
104
|
self.class.output.rewind
|
96
105
|
assert_match( /generating ci files/, self.class.output.read )
|
97
106
|
end
|
107
|
+
|
108
|
+
def test_filter_backtrace
|
109
|
+
bt = begin; raise; rescue => e; e.backtrace; end
|
110
|
+
|
111
|
+
bt = MiniTest::Ci.send :filter_backtrace, bt
|
112
|
+
|
113
|
+
assert_equal 1, bt.size
|
114
|
+
assert_match( /#{__FILE__}/, bt.first )
|
115
|
+
end
|
98
116
|
end
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-ci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 19
|
5
4
|
prerelease:
|
6
|
-
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 1.0.2
|
5
|
+
version: 1.0.3
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Brian Henderson
|
@@ -15,8 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-
|
19
|
-
default_executable:
|
13
|
+
date: 2011-10-04 00:00:00 Z
|
20
14
|
dependencies:
|
21
15
|
- !ruby/object:Gem::Dependency
|
22
16
|
name: minitest
|
@@ -26,11 +20,6 @@ dependencies:
|
|
26
20
|
requirements:
|
27
21
|
- - "="
|
28
22
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 23
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 6
|
33
|
-
- 0
|
34
23
|
version: 2.6.0
|
35
24
|
type: :runtime
|
36
25
|
version_requirements: *id001
|
@@ -42,11 +31,6 @@ dependencies:
|
|
42
31
|
requirements:
|
43
32
|
- - ~>
|
44
33
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 3
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 5
|
49
|
-
- 0
|
50
34
|
version: 1.5.0
|
51
35
|
type: :development
|
52
36
|
version_requirements: *id002
|
@@ -58,11 +42,6 @@ dependencies:
|
|
58
42
|
requirements:
|
59
43
|
- - ">="
|
60
44
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 27
|
62
|
-
segments:
|
63
|
-
- 2
|
64
|
-
- 4
|
65
|
-
- 2
|
66
45
|
version: 2.4.2
|
67
46
|
type: :development
|
68
47
|
version_requirements: *id003
|
@@ -74,10 +53,6 @@ dependencies:
|
|
74
53
|
requirements:
|
75
54
|
- - ~>
|
76
55
|
- !ruby/object:Gem::Version
|
77
|
-
hash: 27
|
78
|
-
segments:
|
79
|
-
- 2
|
80
|
-
- 12
|
81
56
|
version: "2.12"
|
82
57
|
type: :development
|
83
58
|
version_requirements: *id004
|
@@ -104,7 +79,6 @@ files:
|
|
104
79
|
- lib/minitest/ci.rb
|
105
80
|
- test/test_minitest_ci.rb
|
106
81
|
- .gemtest
|
107
|
-
has_rdoc: true
|
108
82
|
homepage: https://github.com/bhenderson/minitest-ci
|
109
83
|
licenses: []
|
110
84
|
|
@@ -119,23 +93,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
119
93
|
requirements:
|
120
94
|
- - ">="
|
121
95
|
- !ruby/object:Gem::Version
|
122
|
-
hash: 3
|
123
|
-
segments:
|
124
|
-
- 0
|
125
96
|
version: "0"
|
126
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
98
|
none: false
|
128
99
|
requirements:
|
129
100
|
- - ">="
|
130
101
|
- !ruby/object:Gem::Version
|
131
|
-
hash: 3
|
132
|
-
segments:
|
133
|
-
- 0
|
134
102
|
version: "0"
|
135
103
|
requirements: []
|
136
104
|
|
137
105
|
rubyforge_project: minitest-ci
|
138
|
-
rubygems_version: 1.
|
106
|
+
rubygems_version: 1.8.10
|
139
107
|
signing_key:
|
140
108
|
specification_version: 3
|
141
109
|
summary: CI reporter plugin for MiniTest This gem was made possible by ATT Interactive.
|