minitest-ci 3.1.0 → 3.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.
- checksums.yaml +4 -4
- data/README.rdoc +27 -6
- data/lib/minitest-ci.rb +2 -0
- data/lib/minitest/ci.rb +20 -12
- data/lib/minitest/ci_plugin.rb +4 -0
- metadata +19 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7df74b27d06a7fc3c130ff4948fa7409006fffd9
|
4
|
+
data.tar.gz: 0f475b81387862ff375e1de9e790239c6bbcd656
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3602c8752a1b60b63b4c403d572c6e45932d56fd8014efb578298c4df55890721baaad6bf66a94ce2f985b30eee8adee285d1464adf0bebab88b08b5b909eaf
|
7
|
+
data.tar.gz: faf0bbac59b3b69b0c38b917defd428fddd7189cd65aef264100d223eb55dcec9d41211c444e9233ae16d92d954eb75cde83267cdccd1e085e6b388e2cb3b84d
|
data/README.rdoc
CHANGED
@@ -6,20 +6,23 @@
|
|
6
6
|
|
7
7
|
== DESCRIPTION:
|
8
8
|
|
9
|
-
Minitest reporter plugin for CircleCI
|
9
|
+
Minitest reporter plugin for [CircleCI](https://circleci.com/).
|
10
10
|
|
11
11
|
This gem was made possible by YP.com
|
12
12
|
|
13
|
-
Records test results and generates XML files
|
14
|
-
|
13
|
+
Records test results and generates XML files at the end of the test run.
|
14
|
+
|
15
|
+
These results can be plugged into, for example, Hudson or Jenkins.
|
16
|
+
This format is also the default used by CircleCI.
|
15
17
|
|
16
18
|
== USAGE:
|
17
19
|
|
18
20
|
In order to use this gem, add it to your Gemfile:
|
19
21
|
|
20
|
-
gem "minitest-
|
22
|
+
gem "minitest-ci"
|
21
23
|
|
22
|
-
To make integration with CircleCI easier, make sure you have a ":test" task defined.
|
24
|
+
To make integration with CircleCI easier, make sure you have a ":test" task defined.
|
25
|
+
You can do this by simply adding the following to your Rakefile:
|
23
26
|
|
24
27
|
require 'rake/testtask'
|
25
28
|
|
@@ -39,13 +42,31 @@ To configure the test output folder, use the "--ci-dir=" option, setting it in
|
|
39
42
|
TESTOPTS. On CircleCI, you might want to use something like this in your
|
40
43
|
circle.yml:
|
41
44
|
|
45
|
+
machine:
|
46
|
+
environment:
|
47
|
+
TESTOPTS: "--ci-dir=$CIRCLE_TEST_REPORTS/reports"
|
42
48
|
test:
|
43
49
|
override:
|
44
|
-
- bundle exec rake test
|
50
|
+
- bundle exec rake test:
|
45
51
|
parallel: true
|
46
52
|
files:
|
47
53
|
- test/**/*.rb
|
48
54
|
|
55
|
+
Alternatively, you can add the following code to your test runner setup:
|
56
|
+
|
57
|
+
# test/helper.rb
|
58
|
+
require 'minitest'
|
59
|
+
require 'minitest/autorun'
|
60
|
+
require 'minitest/ci'
|
61
|
+
|
62
|
+
if ENV["CIRCLECI"]
|
63
|
+
Minitest::Ci.report_dir = "#{ENV["CIRCLE_TEST_REPORTS"]}/reports"
|
64
|
+
end
|
65
|
+
|
66
|
+
class MiniTest::Test
|
67
|
+
# include other helpers, etc
|
68
|
+
end
|
69
|
+
|
49
70
|
|
50
71
|
**NOTE**: The report directory is cleaned between test runs. To disable:
|
51
72
|
|
data/lib/minitest-ci.rb
ADDED
data/lib/minitest/ci.rb
CHANGED
@@ -2,15 +2,11 @@ require 'fileutils'
|
|
2
2
|
require 'cgi'
|
3
3
|
|
4
4
|
module Minitest
|
5
|
-
class Ci
|
6
|
-
|
7
|
-
VERSION = '3.1.0'
|
8
|
-
|
5
|
+
class Ci < Reporter
|
9
6
|
class << self
|
10
7
|
|
11
8
|
##
|
12
|
-
#
|
13
|
-
# defaults.
|
9
|
+
# Change the report directory. (defaults to "test/reports")
|
14
10
|
|
15
11
|
attr_accessor :report_dir
|
16
12
|
|
@@ -18,6 +14,9 @@ module Minitest
|
|
18
14
|
# Clean the report_dir between test runs? (defaults to true)
|
19
15
|
|
20
16
|
attr_accessor :clean
|
17
|
+
|
18
|
+
##
|
19
|
+
# Change the working directory. (defaults to `$PWD`)
|
21
20
|
attr_accessor :working_dir
|
22
21
|
end
|
23
22
|
|
@@ -48,14 +47,16 @@ module Minitest
|
|
48
47
|
results[result.class] << result
|
49
48
|
end
|
50
49
|
|
50
|
+
##
|
51
|
+
# Generate test report
|
51
52
|
def report
|
52
53
|
io.puts
|
53
|
-
io.puts '
|
54
|
+
io.puts '[Minitest::CI] Generating test report in JUnit XML format...'
|
54
55
|
|
55
56
|
Dir.chdir report_dir do
|
56
|
-
results.each do |name,
|
57
|
-
File.open
|
58
|
-
f.puts generate_results
|
57
|
+
results.each do |name, result|
|
58
|
+
File.open(report_name(name), "w") do |f|
|
59
|
+
f.puts( generate_results(name, result) )
|
59
60
|
end
|
60
61
|
end
|
61
62
|
end
|
@@ -72,7 +73,7 @@ module Minitest
|
|
72
73
|
results.each do |result|
|
73
74
|
total_time += result.time
|
74
75
|
assertions += result.assertions
|
75
|
-
|
76
|
+
|
76
77
|
case result.failure
|
77
78
|
when Skip
|
78
79
|
skips += 1
|
@@ -83,7 +84,7 @@ module Minitest
|
|
83
84
|
end
|
84
85
|
end
|
85
86
|
|
86
|
-
base =
|
87
|
+
base = working_dir + '/'
|
87
88
|
xml = []
|
88
89
|
|
89
90
|
xml << '<?xml version="1.0" encoding="UTF-8"?>'
|
@@ -116,6 +117,10 @@ module Minitest
|
|
116
117
|
xml
|
117
118
|
end
|
118
119
|
|
120
|
+
def working_dir
|
121
|
+
options.fetch(:working_dir, self.class.working_dir)
|
122
|
+
end
|
123
|
+
|
119
124
|
def report_dir
|
120
125
|
options.fetch(:ci_dir, self.class.report_dir)
|
121
126
|
end
|
@@ -124,5 +129,8 @@ module Minitest
|
|
124
129
|
options.fetch(:ci_clean, self.class.clean)
|
125
130
|
end
|
126
131
|
|
132
|
+
def report_name(name)
|
133
|
+
"TEST-#{CGI.escape(name.to_s.gsub(/\W+/, '_'))}.xml"[0, 255]
|
134
|
+
end
|
127
135
|
end
|
128
136
|
end
|
data/lib/minitest/ci_plugin.rb
CHANGED
@@ -14,6 +14,10 @@ module Minitest
|
|
14
14
|
opts.on "--[no-]ci-clean", "Clean the CI report dir in between test runs. Default #{Ci.clean}" do |clean|
|
15
15
|
options[:ci_clean] = clean
|
16
16
|
end
|
17
|
+
|
18
|
+
opts.on "--working-dir DIR", "Set the working dir. Default to #{Ci.working_dir}" do |dir|
|
19
|
+
options[:working_dir] = dir
|
20
|
+
end
|
17
21
|
end
|
18
22
|
|
19
23
|
end
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-ci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- zzak
|
7
8
|
- bhenderson
|
8
9
|
- notnoop
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2017-03-14 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: minitest
|
@@ -18,9 +19,6 @@ dependencies:
|
|
18
19
|
- - ">="
|
19
20
|
- !ruby/object:Gem::Version
|
20
21
|
version: 5.0.6
|
21
|
-
- - "~>"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: '5.0'
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -28,9 +26,6 @@ dependencies:
|
|
28
26
|
- - ">="
|
29
27
|
- !ruby/object:Gem::Version
|
30
28
|
version: 5.0.6
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '5.0'
|
34
29
|
- !ruby/object:Gem::Dependency
|
35
30
|
name: bundler
|
36
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,6 +82,20 @@ dependencies:
|
|
87
82
|
- - ">="
|
88
83
|
- !ruby/object:Gem::Version
|
89
84
|
version: 2.4.2
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: json
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 2.0.0
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 2.0.0
|
90
99
|
- !ruby/object:Gem::Dependency
|
91
100
|
name: ZenTest
|
92
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,6 +119,7 @@ extra_rdoc_files: []
|
|
110
119
|
files:
|
111
120
|
- README.rdoc
|
112
121
|
- lib/autotest/minitest_ci.rb
|
122
|
+
- lib/minitest-ci.rb
|
113
123
|
- lib/minitest/ci.rb
|
114
124
|
- lib/minitest/ci_plugin.rb
|
115
125
|
homepage: https://github.com/circleci/minitest-ci
|
@@ -131,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
141
|
version: 1.3.6
|
132
142
|
requirements: []
|
133
143
|
rubyforge_project:
|
134
|
-
rubygems_version: 2.6.
|
144
|
+
rubygems_version: 2.6.8
|
135
145
|
signing_key:
|
136
146
|
specification_version: 4
|
137
147
|
summary: Minitest JUnit XML formatter
|