ci_reporter_minitest 0.0.1 → 0.0.2
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/README.md +7 -2
- data/Rakefile +3 -3
- data/acceptance/minitest_example_test.rb +18 -6
- data/acceptance/verification_spec.rb +72 -24
- data/ci_reporter_minitest.gemspec +4 -2
- data/lib/ci/reporter/minitest.rb +72 -167
- data/lib/ci/reporter/minitest/version.rb +2 -2
- data/lib/ci/reporter/rake/minitest.rb +1 -2
- data/lib/minitest/ci_reporter_plugin.rb +14 -0
- metadata +35 -7
- data/lib/ci/reporter/rake/minitest_loader.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25670630bb575e8d923d64e3cd01ee46d3b424ec
|
4
|
+
data.tar.gz: 329601383b8e40ab1011fef80c8b5ba37fea75d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b8aa967f94e95644da31b16d405712d66768eaf37ef41d8a8e6975324dabf119845e35065635ef9e54d68d895586e768b63d7fd2128af81285d06c7b83c4e1b
|
7
|
+
data.tar.gz: 1f12fd16cd7d59a81a2526fd6d3bcc3d68f8e9d63090fb08c8136f9832e517342797caf1c8e8d7a455bbd85e8d6a684db2e5d585ab0ab777fdf76162a64ac0ee
|
data/README.md
CHANGED
@@ -3,12 +3,17 @@
|
|
3
3
|
Connects [Minitest][mt] to [CI::Reporter][ci], and then to your CI
|
4
4
|
system.
|
5
5
|
|
6
|
+
[](http://badge.fury.io/rb/ci_reporter_minitest)
|
7
|
+
[](https://travis-ci.org/ci-reporter/ci_reporter_minitest)
|
8
|
+
[](https://gemnasium.com/ci-reporter/ci_reporter_minitest)
|
9
|
+
[](https://codeclimate.com/github/ci-reporter/ci_reporter_minitest)
|
10
|
+
|
6
11
|
[mt]: https://github.com/seattlerb/minitest
|
7
12
|
[ci]: https://github.com/ci-reporter/ci_reporter
|
8
13
|
|
9
14
|
## Supported versions
|
10
15
|
|
11
|
-
The latest release of Minitest
|
16
|
+
The latest release of Minitest 5.x is supported.
|
12
17
|
|
13
18
|
## Installation
|
14
19
|
|
@@ -27,7 +32,7 @@ $ bundle
|
|
27
32
|
## Usage
|
28
33
|
|
29
34
|
Require the reporter in your Rakefile, and ensure that
|
30
|
-
`ci:setup:minitest` is a dependency of your
|
35
|
+
`ci:setup:minitest` is a dependency of your minitest task:
|
31
36
|
|
32
37
|
```ruby
|
33
38
|
require 'ci/reporter/rake/minitest'
|
data/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
-
require 'ci/reporter/
|
3
|
-
include CI::Reporter::
|
2
|
+
require 'ci/reporter/test_utils/rake'
|
3
|
+
include CI::Reporter::TestUtils::Rake
|
4
4
|
|
5
5
|
namespace :generate do
|
6
6
|
task :clean do
|
@@ -8,7 +8,7 @@ namespace :generate do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
task :minitest do
|
11
|
-
run_ruby_acceptance "
|
11
|
+
run_ruby_acceptance "acceptance/minitest_example_test.rb --ci-reporter"
|
12
12
|
end
|
13
13
|
|
14
14
|
task :all => [:clean, :minitest]
|
@@ -1,17 +1,29 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
2
|
|
3
|
-
class
|
4
|
-
def
|
5
|
-
puts "Some <![CDATA[on stdout]]>"
|
3
|
+
class ExampleWithAFailure < Minitest::Test
|
4
|
+
def test_failure
|
6
5
|
assert false
|
7
6
|
end
|
8
|
-
|
7
|
+
end
|
8
|
+
|
9
|
+
class ExampleWithAnError < Minitest::Test
|
10
|
+
def test_error
|
9
11
|
raise "second failure"
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
13
|
-
class
|
14
|
-
def
|
15
|
+
class ExampleThatPasses < Minitest::Test
|
16
|
+
def test_passes
|
15
17
|
assert true
|
16
18
|
end
|
17
19
|
end
|
20
|
+
|
21
|
+
class ExampleWithOutput < Minitest::Test
|
22
|
+
def test_stdout
|
23
|
+
$stdout.puts "This is stdout!"
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_stderr
|
27
|
+
$stderr.puts "This is stderr!"
|
28
|
+
end
|
29
|
+
end
|
@@ -1,38 +1,86 @@
|
|
1
1
|
require 'rexml/document'
|
2
|
+
require 'rspec/collection_matchers'
|
3
|
+
require 'ci/reporter/test_utils/accessor'
|
4
|
+
require 'ci/reporter/test_utils/shared_examples'
|
2
5
|
|
3
6
|
REPORTS_DIR = File.dirname(__FILE__) + '/reports'
|
4
7
|
|
5
8
|
describe "MiniTest::Unit acceptance" do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
+
include CI::Reporter::TestUtils::SharedExamples
|
10
|
+
Accessor = CI::Reporter::TestUtils::Accessor
|
11
|
+
|
12
|
+
let(:failure_report_path) { File.join(REPORTS_DIR, 'TEST-ExampleWithAFailure.xml') }
|
13
|
+
let(:error_report_path) { File.join(REPORTS_DIR, 'TEST-ExampleWithAnError.xml') }
|
14
|
+
let(:passing_report_path) { File.join(REPORTS_DIR, 'TEST-ExampleThatPasses.xml') }
|
15
|
+
let(:output_report_path) { File.join(REPORTS_DIR, 'TEST-ExampleWithOutput.xml') }
|
16
|
+
|
17
|
+
it "generates only one XML file for each test class" do
|
18
|
+
expect(Dir["#{REPORTS_DIR}/*.xml"].count).to eql 4
|
9
19
|
end
|
10
20
|
|
11
|
-
|
12
|
-
|
13
|
-
|
21
|
+
context "a test with a failure" do
|
22
|
+
subject(:result) { Accessor.new(load_xml_result(failure_report_path)) }
|
23
|
+
|
24
|
+
it { is_expected.to have(1).failures }
|
25
|
+
it { is_expected.to have(0).errors }
|
26
|
+
it { is_expected.to have(1).testcases }
|
27
|
+
|
28
|
+
describe "the assertion count" do
|
29
|
+
subject { result.assertions_count }
|
30
|
+
it { is_expected.to eql 1 }
|
31
|
+
end
|
32
|
+
|
33
|
+
it_behaves_like "nothing was output"
|
34
|
+
it_behaves_like "a report with consistent attribute counts"
|
35
|
+
end
|
36
|
+
|
37
|
+
context "a test with an error" do
|
38
|
+
subject(:result) { Accessor.new(load_xml_result(error_report_path)) }
|
39
|
+
|
40
|
+
it { is_expected.to have(0).failures }
|
41
|
+
it { is_expected.to have(1).errors }
|
42
|
+
it { is_expected.to have(1).testcases }
|
43
|
+
|
44
|
+
describe "the assertion count" do
|
45
|
+
subject { result.assertions_count }
|
46
|
+
it { is_expected.to eql 0 }
|
47
|
+
end
|
48
|
+
|
49
|
+
it_behaves_like "nothing was output"
|
50
|
+
it_behaves_like "a report with consistent attribute counts"
|
51
|
+
end
|
52
|
+
|
53
|
+
context "a test that outputs to STDOUT and STDERR" do
|
54
|
+
subject(:result) { Accessor.new(load_xml_result(output_report_path)) }
|
55
|
+
|
56
|
+
it "captures the STDOUT" do
|
57
|
+
expect(result.system_out).to eql "This is stdout!"
|
58
|
+
end
|
59
|
+
|
60
|
+
it "captures the STDERR" do
|
61
|
+
expect(result.system_err).to eql "This is stderr!"
|
14
62
|
end
|
15
|
-
doc.root.attributes["errors"].should == "1"
|
16
|
-
doc.root.attributes["failures"].should == "1"
|
17
|
-
doc.root.attributes["assertions"].should == "1"
|
18
|
-
doc.root.attributes["tests"].should == "1"
|
19
|
-
doc.root.elements.to_a("/testsuite/testcase").size.should == 1
|
20
|
-
doc.root.elements.to_a("/testsuite/testcase/error").size.should == 1
|
21
|
-
doc.root.elements.to_a("/testsuite/testcase/failure").size.should == 1
|
22
|
-
doc.root.elements.to_a("/testsuite/system-out").first.texts.inject("") do |c,e|
|
23
|
-
c << e.value; c
|
24
|
-
end.strip.should == "Some <![CDATA[on stdout]]>"
|
25
63
|
end
|
26
64
|
|
27
|
-
|
28
|
-
|
65
|
+
context "a passing test" do
|
66
|
+
subject(:result) { Accessor.new(load_xml_result(passing_report_path)) }
|
67
|
+
|
68
|
+
it { is_expected.to have(0).failures }
|
69
|
+
it { is_expected.to have(0).errors }
|
70
|
+
it { is_expected.to have(1).testcases }
|
71
|
+
|
72
|
+
describe "the assertion count" do
|
73
|
+
subject { result.assertions_count }
|
74
|
+
it { is_expected.to eql 1 }
|
75
|
+
end
|
76
|
+
|
77
|
+
it_behaves_like "nothing was output"
|
78
|
+
it_behaves_like "a report with consistent attribute counts"
|
79
|
+
end
|
80
|
+
|
81
|
+
def load_xml_result(path)
|
82
|
+
File.open(path) do |f|
|
29
83
|
REXML::Document.new(f)
|
30
84
|
end
|
31
|
-
doc.root.attributes["errors"].should == "0"
|
32
|
-
doc.root.attributes["failures"].should == "0"
|
33
|
-
doc.root.attributes["assertions"].should == "1"
|
34
|
-
doc.root.attributes["tests"].should == "1"
|
35
|
-
doc.root.elements.to_a("/testsuite/testcase").size.should == 1
|
36
|
-
doc.root.elements.to_a("/testsuite/testcase/failure").size.should == 0
|
37
85
|
end
|
38
86
|
end
|
@@ -17,10 +17,12 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features|acceptance)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "minitest", "~>
|
21
|
-
spec.add_dependency "ci_reporter", "2.0.0.
|
20
|
+
spec.add_dependency "minitest", "~> 5.0"
|
21
|
+
spec.add_dependency "ci_reporter", "2.0.0.alpha2"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency "rspec", "~> 2.0"
|
26
|
+
spec.add_development_dependency "rspec-collection_matchers"
|
27
|
+
spec.add_development_dependency "ci_reporter_test_utils"
|
26
28
|
end
|
data/lib/ci/reporter/minitest.rb
CHANGED
@@ -1,219 +1,124 @@
|
|
1
1
|
require 'ci/reporter/core'
|
2
|
-
require 'minitest
|
2
|
+
require 'minitest'
|
3
3
|
|
4
4
|
module CI
|
5
5
|
module Reporter
|
6
6
|
class Failure
|
7
|
-
def self.
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
class FailureCore
|
15
|
-
def location(e)
|
16
|
-
last_before_assertion = ""
|
17
|
-
e.backtrace.reverse_each do |s|
|
18
|
-
break if s =~ /in .(assert|refute|flunk|pass|fail|raise|must|wont)/
|
19
|
-
last_before_assertion = s
|
7
|
+
def self.classify(fault)
|
8
|
+
if fault.class == ::Minitest::Assertion
|
9
|
+
MiniTestFailure.new(fault)
|
10
|
+
else
|
11
|
+
MiniTestError.new(fault)
|
20
12
|
end
|
21
|
-
last_before_assertion.sub(/:in .*$/, '')
|
22
13
|
end
|
23
|
-
end
|
24
14
|
|
25
|
-
class MiniTestSkipped < FailureCore
|
26
15
|
def initialize(fault) @fault = fault end
|
27
|
-
def
|
28
|
-
def error?() false end
|
29
|
-
def name() @fault.class.name end
|
16
|
+
def name() @fault.error.class.name end
|
30
17
|
def message() @fault.message end
|
31
|
-
def location()
|
18
|
+
def location() @fault.location end
|
32
19
|
end
|
33
20
|
|
34
|
-
class MiniTestFailure <
|
35
|
-
def initialize(fault, meth) @fault = fault; @meth = meth end
|
21
|
+
class MiniTestFailure < Failure
|
36
22
|
def failure?() true end
|
37
23
|
def error?() false end
|
38
|
-
def name() @meth end
|
39
|
-
def message() @fault.message end
|
40
|
-
def location() super @fault end
|
41
24
|
end
|
42
25
|
|
43
|
-
class MiniTestError <
|
44
|
-
def initialize(fault) @fault = fault end
|
26
|
+
class MiniTestError < Failure
|
45
27
|
def failure?() false end
|
46
28
|
def error?() true end
|
47
|
-
def name() @fault.class.name end
|
48
|
-
def message() @fault.message end
|
49
|
-
def location() @fault.backtrace.join("\n") end
|
50
29
|
end
|
51
30
|
|
52
|
-
class
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
def initialize
|
57
|
-
super
|
58
|
-
@report_manager = ReportManager.new("test")
|
31
|
+
class ActualCapture
|
32
|
+
def start
|
33
|
+
@capture_out = OutputCapture.wrap($stdout) {|io| $stdout = io }
|
34
|
+
@capture_err = OutputCapture.wrap($stderr) {|io| $stderr = io }
|
59
35
|
end
|
60
36
|
|
61
|
-
def
|
62
|
-
|
63
|
-
return if suites.empty?
|
64
|
-
|
65
|
-
started_anything type
|
66
|
-
|
67
|
-
sync = output.respond_to? :"sync=" # stupid emacs
|
68
|
-
old_sync, output.sync = output.sync, true if sync
|
69
|
-
|
70
|
-
_run_suites(suites, type)
|
71
|
-
|
72
|
-
output.sync = old_sync if sync
|
73
|
-
|
74
|
-
finished_anything(type)
|
37
|
+
def finish
|
38
|
+
[@capture_out.finish, @capture_err.finish]
|
75
39
|
end
|
40
|
+
end
|
76
41
|
|
77
|
-
|
78
|
-
|
42
|
+
class NoCapture
|
43
|
+
def start
|
79
44
|
end
|
80
45
|
|
81
|
-
def
|
82
|
-
|
83
|
-
|
84
|
-
header = "#{type}_suite_header"
|
85
|
-
puts send(header, suite) if respond_to? header
|
86
|
-
|
87
|
-
filter_suite_methods(suite, type).each do |method|
|
88
|
-
_run_test(suite, method)
|
89
|
-
end
|
90
|
-
|
91
|
-
finish_suite
|
46
|
+
def finish
|
47
|
+
[nil, nil]
|
92
48
|
end
|
49
|
+
end
|
93
50
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
result = run_test(suite, method)
|
98
|
-
|
99
|
-
@assertion_count += result._assertions
|
100
|
-
@test_count += 1
|
101
|
-
|
102
|
-
finish_case
|
103
|
-
end
|
51
|
+
class Runner < ::Minitest::AbstractReporter
|
52
|
+
def initialize
|
53
|
+
@report_manager = ReportManager.new("test")
|
104
54
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
when MiniTest::Assertion then
|
113
|
-
@failures += 1
|
114
|
-
fault(e, :failure, meth)
|
115
|
-
"Failure:\n#{meth}(#{klass}) [#{location e}]:\n#{e.message}\n"
|
116
|
-
else
|
117
|
-
@errors += 1
|
118
|
-
fault(e, :error)
|
119
|
-
bt = MiniTest::filter_backtrace(e.backtrace).join "\n "
|
120
|
-
"Error:\n#{meth}(#{klass}):\n#{e.class}: #{e.message}\n #{bt}\n"
|
121
|
-
end
|
122
|
-
@report << e
|
123
|
-
e[0, 1]
|
55
|
+
# We have to handle this ourselves
|
56
|
+
if ENV['CI_CAPTURE'] == "off"
|
57
|
+
@capturer = NoCapture.new
|
58
|
+
else
|
59
|
+
@capturer = ActualCapture.new
|
60
|
+
end
|
61
|
+
ENV['CI_CAPTURE'] = "off"
|
124
62
|
end
|
125
63
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
@
|
130
|
-
@assertion_count = 0
|
131
|
-
@last_assertion_count = 0
|
132
|
-
@result_assertion_count = 0
|
133
|
-
@start = Time.now
|
134
|
-
|
135
|
-
puts
|
136
|
-
puts "# Running #{type}s:"
|
137
|
-
puts
|
64
|
+
def start
|
65
|
+
# We start to capture the std{out,err} here so that it is
|
66
|
+
# available at the end of the first test run.
|
67
|
+
@capturer.start
|
138
68
|
end
|
139
69
|
|
140
|
-
def
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
[t, @test_count / t, @assertion_count / t]
|
70
|
+
def record(result)
|
71
|
+
# Get the std{out,err} of the now-finished test before
|
72
|
+
# changing suites so that its lifecycle matches `result`.
|
73
|
+
stdout, stderr = @capturer.finish
|
74
|
+
@capturer.start
|
146
75
|
|
147
|
-
|
148
|
-
|
76
|
+
# This is the only method that gets to know what test and
|
77
|
+
# suite we are in, and is only called at the granularity of a
|
78
|
+
# test. We have to work backwards to understand when the suite
|
79
|
+
# changes.
|
80
|
+
if @current_suite_class != result.class
|
81
|
+
finish_suite
|
82
|
+
start_suite
|
149
83
|
end
|
150
84
|
|
151
|
-
|
85
|
+
@current_suite_class = result.class
|
86
|
+
@current_suite.name = result.class.to_s
|
152
87
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
def filter_suite_methods(suite, type)
|
157
|
-
filter = options[:filter] || '/./'
|
158
|
-
filter = Regexp.new $1 if filter =~ /\/(.*)\//
|
88
|
+
tc = TestCase.new(result.name, result.time, result.assertions)
|
89
|
+
tc.failures = result.failures.map {|f| Failure.classify(f)}
|
90
|
+
tc.skipped = result.skipped?
|
159
91
|
|
160
|
-
|
92
|
+
@current_suite.testcases << tc
|
93
|
+
@current_suite.assertions += tc.assertions
|
94
|
+
@current_suite_stdout << stdout
|
95
|
+
@current_suite_stderr << stderr
|
161
96
|
end
|
162
97
|
|
163
|
-
def
|
164
|
-
|
165
|
-
inst._assertions = 0
|
166
|
-
|
167
|
-
print "#{suite}##{method} = " if @verbose
|
168
|
-
|
169
|
-
@start_time = Time.now
|
170
|
-
result = inst.run self
|
171
|
-
time = Time.now - @start_time
|
172
|
-
|
173
|
-
print "%.2f s = " % time if @verbose
|
174
|
-
print result
|
175
|
-
puts if @verbose
|
176
|
-
|
177
|
-
return inst
|
98
|
+
def report
|
99
|
+
finish_suite
|
178
100
|
end
|
179
101
|
|
180
|
-
|
181
|
-
|
102
|
+
private
|
103
|
+
|
104
|
+
def start_suite
|
105
|
+
@current_suite = TestSuite.new("placeholder suite name")
|
182
106
|
@current_suite.start
|
183
|
-
end
|
184
107
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
@current_suite.assertions = @assertion_count - @last_assertion_count
|
189
|
-
@last_assertion_count = @assertion_count
|
190
|
-
@report_manager.write_report(@current_suite)
|
191
|
-
end
|
108
|
+
@current_suite.assertions = 0
|
109
|
+
@current_suite_stdout = []
|
110
|
+
@current_suite_stderr = []
|
192
111
|
end
|
193
112
|
|
194
|
-
def
|
195
|
-
|
196
|
-
tc.start
|
197
|
-
@current_suite.testcases << tc
|
198
|
-
end
|
113
|
+
def finish_suite
|
114
|
+
return unless @current_suite
|
199
115
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
tc.assertions = @assertion_count - @result_assertion_count
|
204
|
-
@result_assertion_count = @assertion_count
|
205
|
-
end
|
116
|
+
@current_suite.finish
|
117
|
+
@current_suite.stdout = @current_suite_stdout.join
|
118
|
+
@current_suite.stderr = @current_suite_stderr.join
|
206
119
|
|
207
|
-
|
208
|
-
tc = @current_suite.testcases.last
|
209
|
-
if :skip == type
|
210
|
-
tc.skipped = true
|
211
|
-
else
|
212
|
-
tc.failures << Failure.new(fault, type, meth)
|
213
|
-
end
|
120
|
+
@report_manager.write_report(@current_suite)
|
214
121
|
end
|
215
|
-
|
216
122
|
end
|
217
|
-
|
218
123
|
end
|
219
124
|
end
|
@@ -4,8 +4,7 @@ namespace :ci do
|
|
4
4
|
namespace :setup do
|
5
5
|
task :minitest do
|
6
6
|
rm_rf ENV["CI_REPORTS"] || "test/reports"
|
7
|
-
|
8
|
-
ENV["TESTOPTS"] = "#{ENV["TESTOPTS"]} #{test_loader}"
|
7
|
+
ENV["TESTOPTS"] = "#{ENV["TESTOPTS"]} --ci-reporter"
|
9
8
|
end
|
10
9
|
end
|
11
10
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Minitest
|
2
|
+
def self.plugin_ci_reporter_options(opts, options)
|
3
|
+
opts.on "--ci-reporter", "Output to CI::Reporter" do
|
4
|
+
options[:ci_reporter] = true
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.plugin_ci_reporter_init(options)
|
9
|
+
if options[:ci_reporter]
|
10
|
+
require 'ci/reporter/minitest'
|
11
|
+
self.reporter << CI::Reporter::Runner.new
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ci_reporter_minitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sieger
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-07-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: '5.0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: '5.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: ci_reporter
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - '='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 2.0.0.
|
34
|
+
version: 2.0.0.alpha2
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - '='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 2.0.0.
|
41
|
+
version: 2.0.0.alpha2
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: bundler
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,6 +81,34 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '2.0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec-collection_matchers
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: ci_reporter_test_utils
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
84
112
|
description:
|
85
113
|
email:
|
86
114
|
- nick@nicksieger.com
|
@@ -102,7 +130,7 @@ files:
|
|
102
130
|
- lib/ci/reporter/minitest.rb
|
103
131
|
- lib/ci/reporter/minitest/version.rb
|
104
132
|
- lib/ci/reporter/rake/minitest.rb
|
105
|
-
- lib/
|
133
|
+
- lib/minitest/ci_reporter_plugin.rb
|
106
134
|
homepage: https://github.com/ci-reporter/ci_reporter_minitest
|
107
135
|
licenses:
|
108
136
|
- MIT
|