danger-jacoco 0.1.3 → 0.1.4
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 -1
- data/lib/jacoco/gem_version.rb +1 -1
- data/lib/jacoco/plugin.rb +17 -5
- data/spec/jacoco_spec.rb +13 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41f06316cc4d1805a8a86dbd4957500b059b1a96
|
4
|
+
data.tar.gz: f03bd63af127ad7b93e4e284602451e6307e6f34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 472aaa07a8b9592fd940054882f52d03207cdc45a9d4703bda6fe087fd03f0da54a5409f0a2f8f1437cdb9b58b675a06ffbc97c8cb325a69c47275c51e7644e4
|
7
|
+
data.tar.gz: da9c29738c04da81dde72eda8320209339dbbb4b2f9a6f91cf4a61ae9f283439182fd64c8b2aa4a5e7a05716300d523c5e619815bcc7b7a10ba2d1d47ebaf8d6
|
data/README.md
CHANGED
@@ -17,7 +17,7 @@ Add
|
|
17
17
|
jacoco.minimum_project_coverage_percentage = 50 # default 0
|
18
18
|
jacoco.minimum_class_coverage_percentage = 75 # default 0
|
19
19
|
jacoco.files_extension = [".java"] # default [".kt", ".java"]
|
20
|
-
jacoco.report
|
20
|
+
jacoco.report("path/to/jacoco.xml", "http://jacoco-html-reports/")
|
21
21
|
```
|
22
22
|
|
23
23
|
to your `Dangerfile`
|
data/lib/jacoco/gem_version.rb
CHANGED
data/lib/jacoco/plugin.rb
CHANGED
@@ -30,6 +30,7 @@ module Danger
|
|
30
30
|
# This is a fast report based on SAX parser
|
31
31
|
#
|
32
32
|
# @path path to the xml output of jacoco
|
33
|
+
# @report_url URL where html report hosted
|
33
34
|
# @delimiter git.modified_files returns full paths to the
|
34
35
|
# changed files. We need to get the class from this path to check the
|
35
36
|
# Jacoco report,
|
@@ -43,7 +44,7 @@ module Danger
|
|
43
44
|
# Java => blah/blah/java/slashed_package/Source.java
|
44
45
|
# Kotlin => blah/blah/kotlin/slashed_package/Source.kt
|
45
46
|
#
|
46
|
-
def report(path, delimiter = %r{\/java\/|\/kotlin\/})
|
47
|
+
def report(path, report_url = '', delimiter = %r{\/java\/|\/kotlin\/})
|
47
48
|
setup
|
48
49
|
classes = classes(delimiter)
|
49
50
|
|
@@ -54,8 +55,8 @@ module Danger
|
|
54
55
|
|
55
56
|
report_markdown = "### JaCoCO Code Coverage #{total_covered[:covered]}% #{total_covered[:status]}\n"
|
56
57
|
report_markdown << "| Class | Covered | Meta | Status |\n"
|
57
|
-
report_markdown << "
|
58
|
-
class_coverage_above_minimum = markdown_class(parser, report_markdown)
|
58
|
+
report_markdown << "|:---|:---:|:---:|:---:|\n"
|
59
|
+
class_coverage_above_minimum = markdown_class(parser, report_markdown, report_url)
|
59
60
|
markdown(report_markdown)
|
60
61
|
|
61
62
|
report_fails(class_coverage_above_minimum, total_covered)
|
@@ -135,11 +136,12 @@ module Danger
|
|
135
136
|
end
|
136
137
|
# rubocop:enable Style/SignalException
|
137
138
|
|
138
|
-
def markdown_class(parser, report_markdown)
|
139
|
+
def markdown_class(parser, report_markdown, report_url)
|
139
140
|
class_coverage_above_minimum = true
|
140
141
|
parser.classes.each do |jacoco_class| # Check metrics for each classes
|
141
142
|
rp = report_class(jacoco_class)
|
142
|
-
|
143
|
+
rl = report_link(jacoco_class.name, report_url)
|
144
|
+
ln = "| #{rl} | #{rp[:covered]}% | #{rp[:required_coverage_percentage]}% | #{rp[:status]} |\n"
|
143
145
|
report_markdown << ln
|
144
146
|
|
145
147
|
class_coverage_above_minimum &&= rp[:covered] >= rp[:required_coverage_percentage]
|
@@ -147,5 +149,15 @@ module Danger
|
|
147
149
|
|
148
150
|
class_coverage_above_minimum
|
149
151
|
end
|
152
|
+
|
153
|
+
def report_link(class_name, report_url)
|
154
|
+
if report_url.empty?
|
155
|
+
"`#{class_name}`"
|
156
|
+
else
|
157
|
+
report_filepath = class_name.gsub(/\/(?=[^\/]*\/.)/, '.') + ".html"
|
158
|
+
"[`#{class_name}`](#{report_url + report_filepath})"
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
150
162
|
end
|
151
163
|
end
|
data/spec/jacoco_spec.rb
CHANGED
@@ -36,11 +36,23 @@ module Danger
|
|
36
36
|
"Class coverage is below minimum. Improve to at least 0%"])
|
37
37
|
expect(@dangerfile.status_report[:markdowns][0].message).to include("### JaCoCO Code Coverage 32.9% :warning:")
|
38
38
|
expect(@dangerfile.status_report[:markdowns][0].message).to include("| Class | Covered | Meta | Status |")
|
39
|
-
expect(@dangerfile.status_report[:markdowns][0].message).to include("
|
39
|
+
expect(@dangerfile.status_report[:markdowns][0].message).to include("|:---|:---:|:---:|:---:|")
|
40
40
|
expect(@dangerfile.status_report[:markdowns][0].message).to include("| `com/example/CachedRepository` | 50% | 100% | :warning: |")
|
41
41
|
|
42
42
|
end
|
43
43
|
|
44
|
+
it 'adds a link to report' do
|
45
|
+
path_a = "#{File.dirname(__FILE__)}/fixtures/output_a.xml"
|
46
|
+
|
47
|
+
@my_plugin.minimum_class_coverage_percentage = 80
|
48
|
+
@my_plugin.minimum_project_coverage_percentage = 50
|
49
|
+
|
50
|
+
@my_plugin.report(path_a, 'http://test.com/')
|
51
|
+
|
52
|
+
expect(@dangerfile.status_report[:markdowns][0].message).to include("| [`com/example/CachedRepository`](http://test.com/com.example/CachedRepository.html) | 50% | 80% | :warning: |")
|
53
|
+
|
54
|
+
end
|
55
|
+
|
44
56
|
end
|
45
57
|
end
|
46
58
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-jacoco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Malinskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: danger-plugin-api
|