flatware-rspec 2.3.4 → 2.4.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.md +1 -4
- data/lib/flatware/rspec/checkpoint.rb +1 -1
- data/lib/flatware/rspec/formatters/console.rb +6 -6
- data/lib/flatware/rspec/job_builder.rb +20 -18
- metadata +9 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 20d50f7ccf6f5add811354c0dc4b4e2136b2f2ed44f915a4dba8abccd412c404
|
|
4
|
+
data.tar.gz: 77eb9acaf461d095fe48f4f6326503bcd241a30f0f7fd5d33036c6e9fb056a86
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7d0c1208f7ce356b0880f96db36bf102ac8e56c44e2045b5d804f7950b54f33dbce87d07a0a865eb2248f231df6aeb20bfa69c195e2f23f6a8fe1d7f3557cf77
|
|
7
|
+
data.tar.gz: c466fd0b422e9a41d3cf3fb6df37fafb2a7112a00b48b2077fc865a518ea7a8a33f56d53d66a06c06564f30431a2a36c361cb0c225d2a6a0dd7bbd6bb5641229
|
data/README.md
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
# Flatware
|
|
2
|
-
|
|
3
|
-
[code-climate-badge]: https://codeclimate.com/github/briandunn/flatware.svg
|
|
4
|
-
[code-climate]: https://codeclimate.com/github/briandunn/flatware
|
|
1
|
+
# Flatware
|
|
5
2
|
|
|
6
3
|
Flatware parallelizes your test suite to significantly reduce test time.
|
|
7
4
|
|
|
@@ -6,7 +6,7 @@ require 'flatware/rspec/marshalable'
|
|
|
6
6
|
module Flatware
|
|
7
7
|
module RSpec
|
|
8
8
|
##
|
|
9
|
-
#
|
|
9
|
+
# Marshallable container for the run details from a worker.
|
|
10
10
|
# Can be added to other checkpoints to create a final run summary.
|
|
11
11
|
class Checkpoint
|
|
12
12
|
extend Forwardable
|
|
@@ -63,12 +63,12 @@ module Flatware
|
|
|
63
63
|
remaining
|
|
64
64
|
.flat_map(&:id).sort.each_with_index
|
|
65
65
|
.map do |example, index|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
format(
|
|
67
|
+
'%<index>4d) %<example>s',
|
|
68
|
+
index: index.next,
|
|
69
|
+
example: example
|
|
70
|
+
)
|
|
71
|
+
end.join("\n")
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def colorizer
|
|
@@ -6,9 +6,10 @@ module Flatware
|
|
|
6
6
|
module RSpec
|
|
7
7
|
# groups spec files into one job per worker.
|
|
8
8
|
# reads from persisted example statuses, if available,
|
|
9
|
-
# and attempts to
|
|
9
|
+
# and attempts to balance the jobs accordingly.
|
|
10
10
|
class JobBuilder
|
|
11
11
|
extend Forwardable
|
|
12
|
+
|
|
12
13
|
attr_reader :args, :workers, :configuration
|
|
13
14
|
|
|
14
15
|
def_delegators(
|
|
@@ -54,12 +55,12 @@ module Flatware
|
|
|
54
55
|
files_to_run
|
|
55
56
|
.map(&method(:normalize_path))
|
|
56
57
|
.reduce([[], []]) do |(timed, untimed), file|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
if (time = seconds_per_file[file])
|
|
59
|
+
[timed + [[file, time]], untimed]
|
|
60
|
+
else
|
|
61
|
+
[timed, untimed + [file]]
|
|
62
|
+
end
|
|
61
63
|
end
|
|
62
|
-
end
|
|
63
64
|
end
|
|
64
65
|
|
|
65
66
|
def normalize_path(path)
|
|
@@ -73,15 +74,16 @@ module Flatware
|
|
|
73
74
|
end
|
|
74
75
|
|
|
75
76
|
def sum_seconds(statuses)
|
|
76
|
-
statuses
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
old
|
|
77
|
+
statuses
|
|
78
|
+
.select(&passing)
|
|
79
|
+
.map { |example| parse_example(**example) }
|
|
80
|
+
.reduce({}) do |times, example|
|
|
81
|
+
times.merge(
|
|
82
|
+
example.fetch(:file_name) => example.fetch(:seconds)
|
|
83
|
+
) do |_, old = 0, new|
|
|
84
|
+
old + new
|
|
85
|
+
end
|
|
83
86
|
end
|
|
84
|
-
end
|
|
85
87
|
end
|
|
86
88
|
|
|
87
89
|
def passing
|
|
@@ -109,10 +111,10 @@ module Flatware
|
|
|
109
111
|
.sort_by(&block)
|
|
110
112
|
.reverse
|
|
111
113
|
.each do |entry|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
groups.min_by do |group|
|
|
115
|
+
group.map(&block).reduce(:+) || 0
|
|
116
|
+
end.push(entry)
|
|
117
|
+
end
|
|
116
118
|
end
|
|
117
119
|
end
|
|
118
120
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: flatware-rspec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brian Dunn
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: flatware
|
|
@@ -16,28 +15,28 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - '='
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 2.
|
|
18
|
+
version: 2.4.0
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - '='
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 2.
|
|
25
|
+
version: 2.4.0
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: rspec
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '3.
|
|
32
|
+
version: '3.8'
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '3.
|
|
39
|
+
version: '3.8'
|
|
41
40
|
description: A distributed rspec runner
|
|
42
41
|
email: brian@hashrocket.com
|
|
43
42
|
executables: []
|
|
@@ -68,7 +67,6 @@ homepage: http://github.com/briandunn/flatware
|
|
|
68
67
|
licenses:
|
|
69
68
|
- MIT
|
|
70
69
|
metadata: {}
|
|
71
|
-
post_install_message:
|
|
72
70
|
rdoc_options: []
|
|
73
71
|
require_paths:
|
|
74
72
|
- lib
|
|
@@ -76,18 +74,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
76
74
|
requirements:
|
|
77
75
|
- - ">="
|
|
78
76
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: '2
|
|
77
|
+
version: '3.2'
|
|
80
78
|
- - "<"
|
|
81
79
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
80
|
+
version: '4.1'
|
|
83
81
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
82
|
requirements:
|
|
85
83
|
- - ">="
|
|
86
84
|
- !ruby/object:Gem::Version
|
|
87
85
|
version: '0'
|
|
88
86
|
requirements: []
|
|
89
|
-
rubygems_version: 3.
|
|
90
|
-
signing_key:
|
|
87
|
+
rubygems_version: 3.6.9
|
|
91
88
|
specification_version: 4
|
|
92
89
|
summary: A distributed rspec runner
|
|
93
90
|
test_files: []
|