danger-jacoco 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be717547463cb80933a9d0a26dc3c8d54e28ab790ee586f3c85ba008a05a32ac
4
- data.tar.gz: 5d4c4871ab84ca86896e9c0bc87d65deb833222772bca6b94e189382402f6309
3
+ metadata.gz: 98c57cc2ececdda3470143782f1c87943a3f0a08f2931c0aa634444da0d90c69
4
+ data.tar.gz: 4de9109e706b7fa0f33a3906261535fe6c40e4d6b1580951af6cc1a1d6597e01
5
5
  SHA512:
6
- metadata.gz: 28114a17c2544c7780a282edc04660756b0b4b3da8a49c87da7ddae43c71fadbf57f1cc7c887430a6bc3b77115be214e46f6116232ddcbe75b47ed9f4701a969
7
- data.tar.gz: 4958daa6252fdccaf330c6b752cc1bc51a57cfa4988c72fbf6ef8815472ff11df11e212535a43c2f4a2bf367c7de541647b45f2093c89ad5bb4b1b1fa1204e74
6
+ metadata.gz: 021aa093d7763cef129b9b3ee73ddb23ca1e29d6565d6b8c74e24ee4071ea55ea8de5452dd16fea5b2aef97fefdb67ce9fd82a20d22b248af58bd37c51df11fa
7
+ data.tar.gz: 527c5b390bae29e370215cec242586c41adeb16ccd25932a7ab41a03ffd81afaaaf756acf36dd0168f0f86423237ecdfe6a715941a3943a0c514ddab63b5841c
@@ -8,5 +8,6 @@ jobs:
8
8
  - uses: actions/setup-ruby@v1
9
9
  with:
10
10
  ruby-version: '2.6.x'
11
+ - run: gem install bundler
11
12
  - run: bundle install
12
13
  - run: bundle exec rake spec
@@ -10,13 +10,14 @@ jobs:
10
10
  - uses: actions/setup-ruby@v1
11
11
  with:
12
12
  ruby-version: '2.6.x'
13
+ - run: gem install bundler
13
14
  - run: bundle install
14
15
  - run: bundle exec rake spec
15
16
  - name: setup credentials
16
17
  env:
17
18
  RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
18
19
  run: |
19
- mkdir ~/.gem
20
+ mkdir -p ~/.gem
20
21
  echo -e "---\r\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
21
22
  chmod 0600 ~/.gem/credentials
22
23
  - run: bundle exec rake release
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency 'nokogiri-happymapper', '~> 0.6'
23
23
 
24
24
  # General ruby development
25
- spec.add_development_dependency 'bundler', '~> 1.16'
26
- spec.add_development_dependency 'rake', '~> 12.3'
25
+ spec.add_development_dependency 'bundler', '~> 2.0'
26
+ spec.add_development_dependency 'rake', '~> 13.0'
27
27
 
28
28
  # Testing support
29
29
  spec.add_development_dependency 'rspec', '~> 3.7'
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency 'guard-rspec', '~> 4.7'
38
38
 
39
39
  # If you want to work on older builds of ruby
40
- spec.add_development_dependency 'listen', '3.1.5'
40
+ spec.add_development_dependency 'listen', '3.2.1'
41
41
 
42
42
  # This gives you the chance to run a REPL inside your tests
43
43
  # via:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jacoco
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
@@ -25,6 +25,7 @@ module Danger
25
25
  attr_accessor :files_extension
26
26
  attr_accessor :minimum_package_coverage_map
27
27
  attr_accessor :minimum_class_coverage_map
28
+ attr_accessor :fail_no_coverage_data_found
28
29
 
29
30
  # Initialize the plugin with configured parameters or defaults
30
31
  def setup
@@ -61,7 +62,9 @@ module Danger
61
62
  # Java => blah/blah/java/slashed_package/Source.java
62
63
  # Kotlin => blah/blah/kotlin/slashed_package/Source.kt
63
64
  #
64
- def report(path, report_url = '', delimiter = %r{\/java\/|\/kotlin\/})
65
+ def report(path, report_url = '', delimiter = %r{\/java\/|\/kotlin\/}, fail_no_coverage_data_found: true)
66
+ @fail_no_coverage_data_found = fail_no_coverage_data_found
67
+
65
68
  setup
66
69
  classes = classes(delimiter)
67
70
 
@@ -89,18 +92,28 @@ module Danger
89
92
 
90
93
  # It returns a specific class code coverage and an emoji status as well
91
94
  def report_class(jacoco_class)
95
+ report_result = {
96
+ covered: 'No coverage data found : -',
97
+ status: ':black_joker:',
98
+ required_coverage_percentage: 'No coverage data found : -'
99
+ }
100
+
92
101
  counter = coverage_counter(jacoco_class)
93
- coverage = (counter.covered.fdiv(counter.covered + counter.missed) * 100).floor
94
- required_coverage = minimum_class_coverage_map[jacoco_class.name]
95
- required_coverage = package_coverage(jacoco_class.name) if required_coverage.nil?
96
- required_coverage = minimum_class_coverage_percentage if required_coverage.nil?
97
- status = coverage_status(coverage, required_coverage)
102
+ unless counter.nil?
103
+ coverage = (counter.covered.fdiv(counter.covered + counter.missed) * 100).floor
104
+ required_coverage = minimum_class_coverage_map[jacoco_class.name]
105
+ required_coverage = package_coverage(jacoco_class.name) if required_coverage.nil?
106
+ required_coverage = minimum_class_coverage_percentage if required_coverage.nil?
107
+ status = coverage_status(coverage, required_coverage)
108
+
109
+ report_result = {
110
+ covered: coverage,
111
+ status: status,
112
+ required_coverage_percentage: required_coverage
113
+ }
114
+ end
98
115
 
99
- {
100
- covered: coverage,
101
- status: status,
102
- required_coverage_percentage: required_coverage
103
- }
116
+ report_result
104
117
  end
105
118
 
106
119
  # it returns the most suitable coverage by package name to class or nil
@@ -149,7 +162,14 @@ module Danger
149
162
  branch_counter = counters.detect { |e| e.type.eql? 'BRANCH' }
150
163
  line_counter = counters.detect { |e| e.type.eql? 'LINE' }
151
164
  counter = branch_counter.nil? ? line_counter : branch_counter
152
- raise "No coverage data found for #{jacoco_class.name}" if counter.nil?
165
+
166
+ if counter.nil?
167
+ no_coverage_data_found_message = "No coverage data found for #{jacoco_class.name}"
168
+
169
+ raise no_coverage_data_found_message if @fail_no_coverage_data_found.class == TrueClass
170
+
171
+ warn no_coverage_data_found_message
172
+ end
153
173
 
154
174
  counter
155
175
  end
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.0//EN"
2
+ "report.dtd">
3
+ <report name="test_report">
4
+ <sessioninfo id="test-id" start="1480057517395" dump="1480057526412"/>
5
+ <package name="com/example">
6
+ <class name="com/example/CachedRepository">
7
+ <method name="&lt;init&gt;" desc="()V" line="17">
8
+ <counter type="INSTRUCTION" missed="0" covered="11"/>
9
+ <counter type="COMPLEXITY" missed="0" covered="1"/>
10
+ <counter type="METHOD" missed="0" covered="1"/>
11
+ </method>
12
+ <counter type="INSTRUCTION" missed="0" covered="46"/>
13
+ <counter type="COMPLEXITY" missed="5" covered="7"/>
14
+ <counter type="METHOD" missed="0" covered="7"/>
15
+ <counter type="CLASS" missed="0" covered="1"/>
16
+ </class>
17
+ <sourcefile name="CachedRepository.java">
18
+ <line nr="16" mi="0" ci="2" mb="0" cb="0"/>
19
+ <line nr="17" mi="0" ci="3" mb="0" cb="0"/>
20
+ <counter type="INSTRUCTION" missed="2" covered="98"/>
21
+ <counter type="COMPLEXITY" missed="2" covered="11"/>
22
+ <counter type="METHOD" missed="2" covered="11"/>
23
+ <counter type="CLASS" missed="2" covered="4"/>
24
+ </sourcefile>
25
+ <counter type="INSTRUCTION" missed="80" covered="324"/>
26
+ <counter type="COMPLEXITY" missed="11" covered="39"/>
27
+ <counter type="METHOD" missed="9" covered="37"/>
28
+ <counter type="CLASS" missed="2" covered="10"/>
29
+ </package>
30
+ <counter type="INSTRUCTION" missed="39399" covered="19321"/>
31
+ <counter type="COMPLEXITY" missed="5517" covered="1444"/>
32
+ <counter type="METHOD" missed="3382" covered="1120"/>
33
+ <counter type="CLASS" missed="491" covered="370"/>
34
+ </report>
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # rubocop:disable LineLength
4
-
4
+ # rubocop:disable ModuleLength
5
5
  # rubocop:disable BlockLength
6
6
 
7
7
  require File.expand_path('spec_helper', __dir__)
@@ -122,9 +122,46 @@ module Danger
122
122
 
123
123
  expect(@dangerfile.status_report[:markdowns][0].message).to include('| [`com/example/CachedRepository`](http://test.com/com.example/CachedRepository.html) | 50% | 80% | :warning: |')
124
124
  end
125
+
126
+ it 'When option "fail_no_coverage_data_found" is set to optionally fail, it doesn\'t fail the execution' do
127
+ path_a = "#{File.dirname(__FILE__)}/fixtures/output_a.xml"
128
+
129
+ @my_plugin.minimum_class_coverage_percentage = 80
130
+ @my_plugin.minimum_project_coverage_percentage = 50
131
+
132
+ expect { @my_plugin.report(path_a, fail_no_coverage_data_found: true) }.to_not raise_error(RuntimeError)
133
+ end
134
+
135
+ it 'When option "fail_no_coverage_data_found" is not set, the execution fails on empty data' do
136
+ path_a = "#{File.dirname(__FILE__)}/fixtures/output_b.xml"
137
+
138
+ @my_plugin.minimum_class_coverage_percentage = 80
139
+ @my_plugin.minimum_project_coverage_percentage = 50
140
+
141
+ expect { @my_plugin.report path_a }.to raise_error(RuntimeError)
142
+ end
143
+
144
+ it 'When option "fail_no_coverage_data_found" is set to optionally fail, the execution fails on empty data' do
145
+ path_a = "#{File.dirname(__FILE__)}/fixtures/output_b.xml"
146
+
147
+ @my_plugin.minimum_class_coverage_percentage = 80
148
+ @my_plugin.minimum_project_coverage_percentage = 50
149
+
150
+ expect { @my_plugin.report path_a, fail_no_coverage_data_found: true }.to raise_error(RuntimeError)
151
+ end
152
+
153
+ it 'When option "fail_no_coverage_data_found" is set to optionally warn (not fail), the execution doesn\'t fail on empty data' do
154
+ path_a = "#{File.dirname(__FILE__)}/fixtures/output_b.xml"
155
+
156
+ @my_plugin.minimum_class_coverage_percentage = 80
157
+ @my_plugin.minimum_project_coverage_percentage = 50
158
+
159
+ expect { @my_plugin.report path_a, fail_no_coverage_data_found: false }.to_not raise_error(RuntimeError)
160
+ end
125
161
  end
126
162
  end
127
163
  end
128
164
 
129
165
  # rubocop:enable LineLength
166
+ # rubocop:enable ModuleLength
130
167
  # rubocop:enable BlockLength
@@ -18,6 +18,8 @@ RSpec.configure do |config|
18
18
  config.tty = true
19
19
  end
20
20
 
21
+ RSpec::Expectations.configuration.on_potential_false_positives = :nothing
22
+
21
23
  require 'danger_plugin'
22
24
 
23
25
  # These functions are a subset of https://github.com/danger/danger/blob/master/spec/spec_helper.rb
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.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Malinskiy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-19 00:00:00.000000000 Z
11
+ date: 2019-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.16'
47
+ version: '2.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.16'
54
+ version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '12.3'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '12.3'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 3.1.5
145
+ version: 3.2.1
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 3.1.5
152
+ version: 3.2.1
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: pry
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +198,7 @@ files:
198
198
  - lib/jacoco/plugin.rb
199
199
  - lib/jacoco/sax_parser.rb
200
200
  - spec/fixtures/output_a.xml
201
+ - spec/fixtures/output_b.xml
201
202
  - spec/jacoco_spec.rb
202
203
  - spec/spec_helper.rb
203
204
  homepage: https://github.com/Malinskiy/danger-jacoco
@@ -225,5 +226,6 @@ specification_version: 4
225
226
  summary: A longer description of danger-jacoco.
226
227
  test_files:
227
228
  - spec/fixtures/output_a.xml
229
+ - spec/fixtures/output_b.xml
228
230
  - spec/jacoco_spec.rb
229
231
  - spec/spec_helper.rb