semaphore_test_boosters 2.0.2 → 2.1.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/.rubocop.yml +1 -0
- data/README.md +7 -0
- data/lib/test_boosters/boosters/rspec.rb +6 -1
- data/lib/test_boosters/project_info.rb +2 -2
- data/lib/test_boosters/version.rb +1 -1
- data/lib/test_boosters.rb +2 -0
- data/rspec_formatters/semaphore_rspec3_json_formatter.rb +50 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b213f22e0bcbf7f6ff0ed6313e07e938671df73f
|
4
|
+
data.tar.gz: f2391b3857a2ee76f50c384a39c5d3080e7d5ada
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e59a27970000c05f7adc55b7caeb05d9a5a1b544faa7c4d466daaa60856309842efa2dc8448af4867cad736b1c3a3887f57134221080d9c2a54247c97b528cc8
|
7
|
+
data.tar.gz: c6e6fe67907fe336d5edbe845725a8e0ec3be79baafe7e23473f57a0e8001533a1d010b656684f9bd755c4282710cc353f07f9c661d33c3c782c37ab7c05385c
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -200,6 +200,13 @@ Under the hood, the Go Test Booster uses the following command:
|
|
200
200
|
go test <file_list>
|
201
201
|
```
|
202
202
|
|
203
|
+
## Development
|
204
|
+
|
205
|
+
### Integration testing
|
206
|
+
|
207
|
+
For integration tests we use test repositories that are located in
|
208
|
+
<https://github.com/renderedtext/test-boosters-tests.git>.
|
209
|
+
|
203
210
|
## Contributing
|
204
211
|
|
205
212
|
Bug reports and pull requests are welcome on GitHub at
|
@@ -25,7 +25,8 @@ module TestBoosters
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def rspec_options
|
28
|
-
|
28
|
+
# rubocop:disable LineLength
|
29
|
+
@rspec_options ||= "#{ENV["TB_RSPEC_OPTIONS"]} --format documentation --require #{formatter_path} --format SemaphoreFormatter --out #{report_path}"
|
29
30
|
end
|
30
31
|
|
31
32
|
def report_path
|
@@ -36,6 +37,10 @@ module TestBoosters
|
|
36
37
|
ENV["RSPEC_SPLIT_CONFIGURATION_PATH"] || "#{ENV["HOME"]}/rspec_split_configuration.json"
|
37
38
|
end
|
38
39
|
|
40
|
+
def formatter_path
|
41
|
+
@formatter_path ||= File.join(::TestBoosters::ROOT_PATH, "rspec_formatters/semaphore_rspec3_json_formatter.rb")
|
42
|
+
end
|
43
|
+
|
39
44
|
end
|
40
45
|
end
|
41
46
|
end
|
@@ -15,14 +15,14 @@ module TestBoosters
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def display_rspec_version
|
18
|
-
command = "(bundle list | grep -q '* rspec') && bundle exec rspec --version || echo 'not found'"
|
18
|
+
command = "(bundle list | grep -q '* rspec') && (bundle exec rspec --version | head -1) || echo 'not found'"
|
19
19
|
version = TestBoosters::Shell.evaluate(command)
|
20
20
|
|
21
21
|
puts "RSpec Version: #{version}"
|
22
22
|
end
|
23
23
|
|
24
24
|
def display_cucumber_version
|
25
|
-
command = "(bundle list | grep -q '* cucumber') && bundle exec cucumber --version || echo 'not found'"
|
25
|
+
command = "(bundle list | grep -q '* cucumber') && (bundle exec cucumber --version | head -1) || echo 'not found'"
|
26
26
|
version = TestBoosters::Shell.evaluate(command)
|
27
27
|
|
28
28
|
puts "Cucumber Version: #{version}"
|
data/lib/test_boosters.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
RSpec::Support.require_rspec_core "formatters/base_formatter"
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class SemaphoreFormatter < RSpec::Core::Formatters::BaseFormatter
|
5
|
+
RSpec::Core::Formatters.register self, :stop, :close
|
6
|
+
|
7
|
+
attr_reader :output_hash
|
8
|
+
|
9
|
+
def initialize(output)
|
10
|
+
super
|
11
|
+
@output_hash = {}
|
12
|
+
end
|
13
|
+
|
14
|
+
def stop(notification)
|
15
|
+
@output_hash[:examples] = notification.examples.map { |example| format_example(example) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def close(_notification)
|
19
|
+
output.write @output_hash.to_json
|
20
|
+
output.close if IO === output && output != $stdout
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def format_example(example)
|
26
|
+
result = example.execution_result
|
27
|
+
|
28
|
+
{
|
29
|
+
:description => example.description,
|
30
|
+
:full_description => example.full_description,
|
31
|
+
:status => result.status,
|
32
|
+
:file_path => file_path(example),
|
33
|
+
:run_time => result.run_time
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def file_path(example)
|
38
|
+
# In case of a shared_example
|
39
|
+
# example[:file_path] returns the path of the shared_example file
|
40
|
+
#
|
41
|
+
# We are interested in the duration of the file from which the shared_example was called instead.
|
42
|
+
#
|
43
|
+
# We can get this infor from `example.id`.
|
44
|
+
#
|
45
|
+
# It has the following format: `./spec/models/analysis_spec.rb[1:17:1:1:1]`
|
46
|
+
# We are droping the angle brackets at the end.
|
47
|
+
|
48
|
+
example.id.gsub(/\[.*\]$/, "")
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semaphore_test_boosters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Developers at Rendered Text
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semaphore_cucumber_booster_config
|
@@ -166,6 +166,7 @@ files:
|
|
166
166
|
- lib/test_boosters/project_info.rb
|
167
167
|
- lib/test_boosters/shell.rb
|
168
168
|
- lib/test_boosters/version.rb
|
169
|
+
- rspec_formatters/semaphore_rspec3_json_formatter.rb
|
169
170
|
- test_boosters.gemspec
|
170
171
|
homepage: https://github.com/renderedtext/test-boosters
|
171
172
|
licenses:
|