danger-simplecov_json 0.2.1 → 0.3.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/Gemfile.lock +20 -25
- data/README.md +8 -0
- data/lib/simplecov_json/gem_version.rb +1 -1
- data/lib/simplecov_json/plugin.rb +43 -0
- data/spec/fixtures/coverage.json +4 -3
- data/spec/simplecov_json_spec.rb +11 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23beee17a6c7e4cc342988b1dafbcd6f5f01bd20
|
4
|
+
data.tar.gz: f79560aeb629c1f72e6bd7efe15ff249f6405a45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77c49a651fcb90c278d9dd23c9c778652d384d8767ef74c41b83fc7075edc21036b57a833f1a9dd70b63220d025acfb9698a52f72942dac82065396d4493e923
|
7
|
+
data.tar.gz: 4e891b50fac5dfc9ff38a6c21bf841e888217cadbf48d551b5c34b8fb896ddb276837f3b4af7c28c43e4eff88ece90cda7f774b6ed1524b58d00a8fbfdefe01f
|
data/Gemfile.lock
CHANGED
@@ -1,48 +1,46 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
danger-simplecov_json (0.
|
4
|
+
danger-simplecov_json (0.3.0)
|
5
5
|
danger-plugin-api (~> 1.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
addressable (2.
|
10
|
+
addressable (2.5.0)
|
11
|
+
public_suffix (~> 2.0, >= 2.0.2)
|
11
12
|
ast (2.3.0)
|
12
|
-
claide (1.0.
|
13
|
-
claide-plugins (0.9.
|
13
|
+
claide (1.0.1)
|
14
|
+
claide-plugins (0.9.2)
|
14
15
|
cork
|
15
16
|
nap
|
16
17
|
open4 (~> 1.3)
|
17
18
|
coderay (1.1.1)
|
18
19
|
colored (1.2)
|
20
|
+
colored2 (3.1.2)
|
19
21
|
cork (0.2.0)
|
20
22
|
colored (~> 1.2)
|
21
|
-
danger (
|
23
|
+
danger (4.2.2)
|
22
24
|
claide (~> 1.0)
|
23
|
-
claide-plugins (
|
24
|
-
|
25
|
+
claide-plugins (>= 0.9.2)
|
26
|
+
colored2 (~> 3.1)
|
25
27
|
cork (~> 0.1)
|
26
28
|
faraday (~> 0.9)
|
27
29
|
faraday-http-cache (~> 1.0)
|
28
30
|
git (~> 1)
|
29
|
-
gitlab (~> 3.7.0)
|
30
31
|
kramdown (~> 1.5)
|
31
32
|
octokit (~> 4.2)
|
32
33
|
terminal-table (~> 1)
|
33
34
|
danger-plugin-api (1.0.0)
|
34
35
|
danger (> 2.0)
|
35
36
|
diff-lcs (1.2.5)
|
36
|
-
faraday (0.
|
37
|
+
faraday (0.11.0)
|
37
38
|
multipart-post (>= 1.2, < 3)
|
38
39
|
faraday-http-cache (1.3.1)
|
39
40
|
faraday (~> 0.8)
|
40
41
|
ffi (1.9.14)
|
41
42
|
formatador (0.2.5)
|
42
43
|
git (1.3.0)
|
43
|
-
gitlab (3.7.0)
|
44
|
-
httparty (~> 0.13.0)
|
45
|
-
terminal-table
|
46
44
|
guard (2.14.0)
|
47
45
|
formatador (>= 0.2.4)
|
48
46
|
listen (>= 2.7, < 4.0)
|
@@ -57,25 +55,20 @@ GEM
|
|
57
55
|
guard (~> 2.1)
|
58
56
|
guard-compat (~> 1.1)
|
59
57
|
rspec (>= 2.99.0, < 4.0)
|
60
|
-
|
61
|
-
json (~> 1.8)
|
62
|
-
multi_xml (>= 0.5.2)
|
63
|
-
json (1.8.3)
|
64
|
-
kramdown (1.12.0)
|
58
|
+
kramdown (1.13.2)
|
65
59
|
listen (3.0.7)
|
66
60
|
rb-fsevent (>= 0.9.3)
|
67
61
|
rb-inotify (>= 0.9.7)
|
68
62
|
lumberjack (1.0.10)
|
69
63
|
method_source (0.8.2)
|
70
|
-
multi_xml (0.5.5)
|
71
64
|
multipart-post (2.0.0)
|
72
65
|
nap (1.1.0)
|
73
66
|
nenv (0.3.0)
|
74
67
|
notiffany (0.1.0)
|
75
68
|
nenv (~> 0.1)
|
76
69
|
shellany (~> 0.0)
|
77
|
-
octokit (4.
|
78
|
-
sawyer (~> 0.
|
70
|
+
octokit (4.6.2)
|
71
|
+
sawyer (~> 0.8.0, >= 0.5.3)
|
79
72
|
open4 (1.3.4)
|
80
73
|
parser (2.3.1.2)
|
81
74
|
ast (~> 2.2)
|
@@ -84,6 +77,7 @@ GEM
|
|
84
77
|
coderay (~> 1.1.0)
|
85
78
|
method_source (~> 0.8.1)
|
86
79
|
slop (~> 3.4)
|
80
|
+
public_suffix (2.0.5)
|
87
81
|
rainbow (2.1.0)
|
88
82
|
rake (10.5.0)
|
89
83
|
rb-fsevent (0.9.7)
|
@@ -109,12 +103,13 @@ GEM
|
|
109
103
|
ruby-progressbar (~> 1.7)
|
110
104
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
111
105
|
ruby-progressbar (1.8.1)
|
112
|
-
sawyer (0.
|
113
|
-
addressable (>= 2.3.5, < 2.
|
114
|
-
faraday (~> 0.8, < 0
|
106
|
+
sawyer (0.8.1)
|
107
|
+
addressable (>= 2.3.5, < 2.6)
|
108
|
+
faraday (~> 0.8, < 1.0)
|
115
109
|
shellany (0.0.1)
|
116
110
|
slop (3.6.0)
|
117
|
-
terminal-table (1.
|
111
|
+
terminal-table (1.7.0)
|
112
|
+
unicode-display_width (~> 1.1)
|
118
113
|
thor (0.19.1)
|
119
114
|
unicode-display_width (1.1.0)
|
120
115
|
yard (0.8.7.6)
|
@@ -135,4 +130,4 @@ DEPENDENCIES
|
|
135
130
|
yard (~> 0.8)
|
136
131
|
|
137
132
|
BUNDLED WITH
|
138
|
-
1.
|
133
|
+
1.13.7
|
data/README.md
CHANGED
@@ -52,6 +52,14 @@ You can also make the message not [sticky](http://danger.systems/reference.html)
|
|
52
52
|
simplecov.report('coverage/coverage.json', sticky: false)
|
53
53
|
```
|
54
54
|
|
55
|
+
### Individual File coverage
|
56
|
+
|
57
|
+
In addition, you can see coverage for the files you've added or modified in git:
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
simplecov.individual_report('coverage/coverage.json', Dir.pwd)
|
61
|
+
```
|
62
|
+
|
55
63
|
## License
|
56
64
|
|
57
65
|
MIT
|
@@ -9,6 +9,7 @@ module Danger
|
|
9
9
|
# @example Report code coverage
|
10
10
|
#
|
11
11
|
# simplecov.report('coverage/coverage.json')
|
12
|
+
# simplecov.individual_report('coverage/coverage.json', Dir.pwd)
|
12
13
|
#
|
13
14
|
# @see marcelofabri/danger-simplecov_json
|
14
15
|
# @tags ruby, code-coverage, simplecov
|
@@ -33,6 +34,48 @@ module Danger
|
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
37
|
+
# Parse a JSON code coverage file and report on the files that you have
|
38
|
+
# added or modified in git
|
39
|
+
# @return [void]
|
40
|
+
#
|
41
|
+
def individual_report(coverage_path, current_project_path)
|
42
|
+
if File.exist? coverage_path
|
43
|
+
committed_files = git.modified_files + git.added_files
|
44
|
+
|
45
|
+
unless current_project_path.nil?
|
46
|
+
committed_files = committed_files.map do |s|
|
47
|
+
current_project_path + '/' + s
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
covered_files = JSON.parse(File.read(coverage_path), symbolize_names: true)[:files]
|
52
|
+
.select { |f| committed_files.include?(f[:filename]) }
|
53
|
+
|
54
|
+
return if covered_files.nil? || covered_files.empty?
|
55
|
+
markdown individual_coverage_message(covered_files)
|
56
|
+
else
|
57
|
+
fail('Code coverage data not found')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Builds the markdown table displaying coverage on individual files
|
62
|
+
# @param [Array] covered_files
|
63
|
+
# @return [String] Markdown table
|
64
|
+
#
|
65
|
+
def individual_coverage_message(covered_files)
|
66
|
+
require 'terminal-table'
|
67
|
+
|
68
|
+
message = "### Code Coverage\n\n"
|
69
|
+
table = Terminal::Table.new(
|
70
|
+
headings: %w(File Coverage),
|
71
|
+
style: { border_i: '|' },
|
72
|
+
rows: covered_files.map do |file|
|
73
|
+
[file[:filename], "#{format('%.02f', file[:covered_percent])}%"]
|
74
|
+
end
|
75
|
+
).to_s
|
76
|
+
message + table.split("\n")[1..-2].join("\n")
|
77
|
+
end
|
78
|
+
|
36
79
|
def self.instance_name
|
37
80
|
'simplecov'
|
38
81
|
end
|
data/spec/fixtures/coverage.json
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
{
|
1
|
+
{
|
2
2
|
"timestamp":1471917899,
|
3
3
|
"command_name":"RSpec",
|
4
|
-
"files":[
|
4
|
+
"files":[
|
5
|
+
{ "filename": "another_ruby_file.rb", "covered_percent": 20.0 }
|
5
6
|
],
|
6
|
-
"metrics":{
|
7
|
+
"metrics":{
|
7
8
|
"covered_percent":99.14754098360656,
|
8
9
|
"covered_strength":31.564786885245905,
|
9
10
|
"covered_lines":1512,
|
data/spec/simplecov_json_spec.rb
CHANGED
@@ -18,6 +18,17 @@ module Danger
|
|
18
18
|
expect(@dangerfile.status_report[:messages]).to eq(['Code coverage is now at 99.15% (1512/1525 lines)'])
|
19
19
|
end
|
20
20
|
|
21
|
+
it 'Shows individual code coverage report' do
|
22
|
+
allow(@simplecov.git).to receive(:added_files).and_return([])
|
23
|
+
allow(@simplecov.git).to receive(:modified_files)
|
24
|
+
.and_return(['another_ruby_file.rb'])
|
25
|
+
|
26
|
+
@simplecov.individual_report('spec/fixtures/coverage.json', nil)
|
27
|
+
expect(@dangerfile.status_report[:markdowns][0].message).to eq("### Code Coverage\n\n"\
|
28
|
+
"| File | Coverage |\n|----------------------|----------|\n"\
|
29
|
+
'| another_ruby_file.rb | 20.00% |')
|
30
|
+
end
|
31
|
+
|
21
32
|
it 'Fails if code coverage not found' do
|
22
33
|
@simplecov.report('spec/fixtures/missing_file.json')
|
23
34
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-simplecov_json
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcelo Fabri
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: danger-plugin-api
|
@@ -198,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
198
|
version: '0'
|
199
199
|
requirements: []
|
200
200
|
rubyforge_project:
|
201
|
-
rubygems_version: 2.
|
201
|
+
rubygems_version: 2.6.0
|
202
202
|
signing_key:
|
203
203
|
specification_version: 4
|
204
204
|
summary: A Danger plugin to report code coverage generated by SimpleCov in JSON format.
|