single_cov 1.3.2 → 1.5.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/lib/single_cov/version.rb +1 -1
- data/lib/single_cov.rb +33 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a086ee2f32cf635cc63929751ba9440fd473b9a5b6f6f5cae7e4546efd4db56
|
4
|
+
data.tar.gz: 7a8a8a4d601f53d79ed45b93e1eb7f06fc7b917fd01ffc41d7e3e02bf1f0825c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff29c57455d8fe0b7a16d14a58b5efb2d97a5cbbca25b03da77f322e4443e12e378f7ce5156770f5907f1db10a543907b5a0ea1d87950e2d05237edff9d28a2f
|
7
|
+
data.tar.gz: 16eb10a22563b11c53e67b5037ce0b5f6d867435844fd3f153f6cdb892ffe4a3a46c113e6732fc1895bbb6c6bd17e7d5c3666c636b24c23c78a48cfd1a46eae9
|
data/lib/single_cov/version.rb
CHANGED
data/lib/single_cov.rb
CHANGED
@@ -6,6 +6,12 @@ module SingleCov
|
|
6
6
|
UNCOVERED_COMMENT_MARKER = "uncovered"
|
7
7
|
|
8
8
|
class << self
|
9
|
+
# enable coverage reporting: location of output file, changed by forking-test-runner to combine multiple reports
|
10
|
+
attr_accessor :coverage_report
|
11
|
+
|
12
|
+
# emit only line coverage in coverage report for older coverage systems
|
13
|
+
attr_accessor :coverage_report_lines
|
14
|
+
|
9
15
|
# optionally rewrite the file we guessed with a lambda
|
10
16
|
def rewrite(&block)
|
11
17
|
@rewrite = block
|
@@ -118,7 +124,11 @@ module SingleCov
|
|
118
124
|
start_coverage_recording
|
119
125
|
|
120
126
|
override_at_exit do |status, _exception|
|
121
|
-
|
127
|
+
if enabled? && main_process? && status == 0
|
128
|
+
results = coverage_results
|
129
|
+
generate_report results
|
130
|
+
exit 1 unless SingleCov.all_covered?(results)
|
131
|
+
end
|
122
132
|
end
|
123
133
|
end
|
124
134
|
|
@@ -358,5 +368,27 @@ module SingleCov
|
|
358
368
|
def root
|
359
369
|
@root ||= (defined?(Bundler) && Bundler.root.to_s.sub(/\/gemfiles$/, '')) || Dir.pwd
|
360
370
|
end
|
371
|
+
|
372
|
+
def generate_report(results)
|
373
|
+
return unless report = coverage_report
|
374
|
+
|
375
|
+
# not a hard dependency for the whole library
|
376
|
+
require "json"
|
377
|
+
require "fileutils"
|
378
|
+
|
379
|
+
used = COVERAGES.map { |f, _| "#{root}/#{f}" }
|
380
|
+
covered = results.select { |k, _| used.include?(k) }
|
381
|
+
|
382
|
+
if coverage_report_lines
|
383
|
+
covered = covered.each_with_object({}) { |(k, v), h| h[k] = v.is_a?(Hash) ? v.fetch(:lines) : v }
|
384
|
+
end
|
385
|
+
|
386
|
+
# chose "Minitest" because it is what simplecov uses for reports and "Unit Tests" makes sonarqube break
|
387
|
+
data = JSON.pretty_generate(
|
388
|
+
"Minitest" => {"coverage" => covered, "timestamp" => Time.now.to_i }
|
389
|
+
)
|
390
|
+
FileUtils.mkdir_p(File.dirname(report))
|
391
|
+
File.write report, data
|
392
|
+
end
|
361
393
|
end
|
362
394
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: single_cov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: michael@grosser.it
|
@@ -38,8 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
requirements: []
|
41
|
-
|
42
|
-
rubygems_version: 2.7.6
|
41
|
+
rubygems_version: 3.1.3
|
43
42
|
signing_key:
|
44
43
|
specification_version: 4
|
45
44
|
summary: Actionable code coverage.
|