minitest-reporters-parallel_tests_reporter 0.0.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 +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +37 -0
- data/Rakefile +10 -0
- data/lib/minitest/reporters/parallel_tests_reporter.rb +62 -0
- data/minitest-reporters-parallel_tests_reporter.gemspec +26 -0
- metadata +108 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 52d9a953c7e8cf65e14924cf3baad384f3bcd699
|
4
|
+
data.tar.gz: 102f4ef181d9517d1c4a623a779f1509c19468dc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d8fd3f4a02f9e12584f0671e9b917edadd66fd59217094f7048bf14c5594c72450b1b493fbc9ccda3e5b43af402fdfbc8d3c714940822079416e79df37f46f07
|
7
|
+
data.tar.gz: fef7b18e51b8d3bd8184b39955d10b8b831fc53e7d30e55c7d8419c90b4297883c6acae1e2e2b86c768a763be0ca19bb493e70b5d6424e49b258cd313098542b
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# Minitest::Reporters::ParallelTestsReporter
|
2
|
+
|
3
|
+
a [minitest-reporters](https://github.com/kern/minitest-reporters) extension
|
4
|
+
for integrating with [parallel_tests](https://github.com/grosser/parallel_tests).
|
5
|
+
Designed to integrate with [parallel_tests-extensions](https://github.com/backupify/parallel_tests-extensions)
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
```rb
|
10
|
+
gem 'minitest-reporters-parallel_tests_reporter'
|
11
|
+
gem 'parallel_tests-extensions'
|
12
|
+
```
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
In the example below we integrate with [parallel_tests-extensions](https://github.com/backupify/parallel_tests-extensions) to
|
17
|
+
compile the reports from each process and print out the failed tests:
|
18
|
+
|
19
|
+
```rb
|
20
|
+
require 'parallel_tests/extensions'
|
21
|
+
require 'minitest/reporters/parallel_tests_reporter'
|
22
|
+
|
23
|
+
ParallelTests.after_tests do
|
24
|
+
if ParallelTests.first_process?
|
25
|
+
report = Minitest::Reporters::ParallelTestsReporter.compile_reports!
|
26
|
+
failed = report.select {|r| r[:failures].any?}
|
27
|
+
if failed.any?
|
28
|
+
puts "\nThe following tests failed:"
|
29
|
+
puts failed.map {|f| f[:location]}.join("\n")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
if ParallelTests.is_running?
|
35
|
+
Minitest::Reporters.use!(Minitest::Reporters::ParallelTestsReporter.new)
|
36
|
+
end
|
37
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'minitest/reporters'
|
2
|
+
|
3
|
+
module Minitest
|
4
|
+
module Reporters
|
5
|
+
class ParallelTestsReporter < BaseReporter
|
6
|
+
VERSION = '0.0.1'
|
7
|
+
|
8
|
+
# Override if needed
|
9
|
+
def self.compiled_report_filepath
|
10
|
+
'tmp/test_output_compiled.yml'
|
11
|
+
end
|
12
|
+
|
13
|
+
# Override if needed
|
14
|
+
def self.report_name_prefix
|
15
|
+
'tmp/test_output'
|
16
|
+
end
|
17
|
+
|
18
|
+
# Use to read the report
|
19
|
+
def self.load_compiled_report
|
20
|
+
YAML.load_file(self.compiled_report_filepath)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Call to compile all of the parallel reports together into one
|
24
|
+
# Destroys each of the segment reports after compiling
|
25
|
+
def self.compile_reports!
|
26
|
+
outputs = Dir[self.report_name_prefix + '*.yml']
|
27
|
+
outputs.delete self.compiled_report_filepath
|
28
|
+
sorted = outputs
|
29
|
+
.flat_map {|p| YAML.load_file(p)}
|
30
|
+
.sort {|a,b| b[:time] <=> a[:time]}
|
31
|
+
|
32
|
+
File.open(self.compiled_report_filepath, 'w') { |f| f.write sorted.to_yaml }
|
33
|
+
logger.debug(self.name + "::compile_reports!") { "Compiled parallel test results written to #{self.compiled_report_filepath}" }
|
34
|
+
|
35
|
+
FileUtils.rm(outputs)
|
36
|
+
logger.debug(self.name + "::compile_reports!") { "Parallel segment test results deleted #{outputs}" }
|
37
|
+
sorted
|
38
|
+
end
|
39
|
+
|
40
|
+
# Hook into BaseReporter
|
41
|
+
def report
|
42
|
+
super
|
43
|
+
result = tests.map do |t|
|
44
|
+
{ test_class_name: t.class.name, failures: t.failures.map(&:location), location: t.location, time: t.time }
|
45
|
+
end
|
46
|
+
filename = self.class.report_name_prefix + ENV['TEST_ENV_NUMBER'] + '.yml'
|
47
|
+
File.open(filename, 'w') do |f|
|
48
|
+
f.write result.to_yaml
|
49
|
+
end
|
50
|
+
logger.debug("#{self.class.name}#report") { "Parallel segment test results written to #{filename}" }
|
51
|
+
end
|
52
|
+
|
53
|
+
def logger
|
54
|
+
self.class.logger
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.logger
|
58
|
+
@logger ||= Logger.new($stdout)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'minitest/reporters/parallel_tests_reporter'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "minitest-reporters-parallel_tests_reporter"
|
8
|
+
spec.version = Minitest::Reporters::ParallelTestsReporter::VERSION
|
9
|
+
spec.authors = ["Josh Bodah"]
|
10
|
+
spec.email = ["jb3689@yahoo.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{a minitest-reporters extension for integrating with parallel_tests}
|
13
|
+
spec.description = %q{a minitest-reporters extension for integrating with parallel_tests. designed to integrate with parallel_tests-extensions}
|
14
|
+
spec.homepage = "https://github.com/backupify/minitest-reporters-parallel_tests_reporter"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = "exe"
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency 'minitest-reporters'
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "minitest"
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: minitest-reporters-parallel_tests_reporter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Josh Bodah
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest-reporters
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.10'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.10'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: a minitest-reporters extension for integrating with parallel_tests. designed
|
70
|
+
to integrate with parallel_tests-extensions
|
71
|
+
email:
|
72
|
+
- jb3689@yahoo.com
|
73
|
+
executables: []
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
79
|
+
- Gemfile
|
80
|
+
- README.md
|
81
|
+
- Rakefile
|
82
|
+
- lib/minitest/reporters/parallel_tests_reporter.rb
|
83
|
+
- minitest-reporters-parallel_tests_reporter.gemspec
|
84
|
+
homepage: https://github.com/backupify/minitest-reporters-parallel_tests_reporter
|
85
|
+
licenses: []
|
86
|
+
metadata: {}
|
87
|
+
post_install_message:
|
88
|
+
rdoc_options: []
|
89
|
+
require_paths:
|
90
|
+
- lib
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
requirements: []
|
102
|
+
rubyforge_project:
|
103
|
+
rubygems_version: 2.4.8
|
104
|
+
signing_key:
|
105
|
+
specification_version: 4
|
106
|
+
summary: a minitest-reporters extension for integrating with parallel_tests
|
107
|
+
test_files: []
|
108
|
+
has_rdoc:
|