simplecov-cobertura 1.0.3.beta.1 → 1.0.3.beta.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4cfd70e08a9f0d92c8bb2099b662992b210a1bba
4
- data.tar.gz: 2b25de89f8263b8ec0f00e3120412bd39d3f3cab
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmViY2IyY2U0ZTJjYjdkMTA1MjM4ZThlNDgxNmUyZGZhOGUwMGY3Ng==
5
+ data.tar.gz: !binary |-
6
+ N2ZmMzU1NGI0MGQwN2Y3Y2FjMDY4NjBkZTUxN2U0Zjk4MDMzNDYwOQ==
5
7
  SHA512:
6
- metadata.gz: c7f6e99955bde887f5472f4bdc10123cdec433515a902b92661ba9e5cf50da8d134adf647c534624741b749b742727b543739eaa941bfdd25eee9b44c7808a5b
7
- data.tar.gz: cc5d4d18eac3c57bcdb4bfb0b1036fccca7a2aaf711a90237f72d14feaa78220f3466dc9883e24a4339396f47e355fde15646014c24c8494804bdb785af5c9a4
8
+ metadata.gz: !binary |-
9
+ OTBhNzYzZTVlZmRjMTQ5NGFhYzA3YmY5YTZkNWVkNjhiNjQxNzg0N2JmYTBi
10
+ MDNjZTEzYjc5YzMwNWQzNGVjOWU1Zjk5MjIzOGNlNTkwZTZkNzg2OGVmZTMw
11
+ ZmNlZDQ2Zjg1NTk0YmNmYTAyNTQ1M2VmMjEyNjQ2NWJlMWYwOWQ=
12
+ data.tar.gz: !binary |-
13
+ ZmRiMmIwZTAyY2JjOThlMjhkYTNlODk4NjYzMmMyOGI5ZWM1YzFlMWUxZDA2
14
+ YmU2NThkYjJjYjQzNGFlMDZmY2RlMTVjYWQ3MzM4NmNiNGUyZDM3OThiZmI5
15
+ Nzc0MjdjMjA5NjczNjQ0ODEwOWI0MDAyNWJiZTdhZmIwYTYzZjQ=
data/README.md CHANGED
@@ -43,7 +43,7 @@ Tested in a CI environment against the following Ruby versions:
43
43
  * No support for branch coverage
44
44
 
45
45
  ## Troubleshooting
46
- If you get an error about not being able to install the libxml-ruby gem, do the following
46
+ Testing requres the libxml-ruby gem. If you get an error about not being able to install the libxml-ruby gem, do the following
47
47
 
48
48
  $ sudo apt-get install libxml2-dev
49
49
 
@@ -60,7 +60,7 @@ If you get an error about not being able to install the libxml-ruby gem, do the
60
60
  5. Create a new Pull Request
61
61
 
62
62
  ## License
63
- Copyright 2014 Dashing Rocket, Ltd.
63
+ Copyright 2016 Dashing Rocket, Ltd.
64
64
 
65
65
  Licensed under the Apache License, Version 2.0 (the "License");
66
66
  you may not use this file except in compliance with the License.
@@ -1,94 +1,107 @@
1
1
  require 'rexml/document'
2
2
  require 'rexml/element'
3
- require 'simplecov'
4
-
5
- class SimpleCov::Formatter::CoberturaFormatter
6
- RESULT_FILE_NAME = 'coverage.xml'
7
- DTD_URL = 'http://cobertura.sourceforge.net/xml/coverage-04.dtd'
8
-
9
- def format(result)
10
- xml = result_to_xml result
11
- result_path = File.join( SimpleCov.coverage_path, RESULT_FILE_NAME )
12
- File.write(result_path, xml)
13
- puts "Coverage report generated for #{result.command_name} to #{result_path}"
14
- xml
15
- end
16
3
 
17
- private
18
- def result_to_xml(result)
19
- doc = REXML::Document.new set_xml_head
20
- doc.add_element REXML::Element.new('coverage')
21
- coverage = doc.root
4
+ module SimpleCov
5
+ module Formatter
6
+ class CoberturaFormatter
7
+ VERSION = '1.0.3.beta.4'
8
+
9
+ RESULT_FILE_NAME = 'coverage.xml'
10
+ DTD_URL = 'http://cobertura.sourceforge.net/xml/coverage-04.dtd'
11
+
12
+ def format(result)
13
+ xml_doc = result_to_xml result
14
+ result_path = File.join(SimpleCov.coverage_path, RESULT_FILE_NAME)
15
+
16
+ formatter = REXML::Formatters::Pretty.new
17
+ formatter.compact = true
18
+ string_io = StringIO.new
19
+ formatter.write(xml_doc, string_io)
20
+
21
+ xml_str = string_io.string
22
+ File.write(result_path, xml_str)
23
+ puts "Coverage report generated for #{result.command_name} to #{result_path}"
24
+ xml_str
25
+ end
22
26
 
23
- set_coverage_attributes(coverage, result)
27
+ private
28
+ def result_to_xml(result)
29
+ doc = REXML::Document.new set_xml_head
30
+ doc.add_element REXML::Element.new('coverage')
31
+ coverage = doc.root
24
32
 
25
- coverage.add_element(sources = REXML::Element.new('sources'))
26
- sources.add_element(source = REXML::Element.new('source'))
27
- source.text = SimpleCov.root
33
+ set_coverage_attributes(coverage, result)
28
34
 
29
- coverage.add_element(packages = REXML::Element.new('packages'))
30
- packages.add_element(package = REXML::Element.new('package'))
31
- set_package_attributes(package, result)
35
+ coverage.add_element(sources = REXML::Element.new('sources'))
36
+ sources.add_element(source = REXML::Element.new('source'))
37
+ source.text = SimpleCov.root
32
38
 
33
- package.add_element(classes = REXML::Element.new('classes'))
39
+ coverage.add_element(packages = REXML::Element.new('packages'))
40
+ packages.add_element(package = REXML::Element.new('package'))
41
+ set_package_attributes(package, result)
34
42
 
35
- result.files.each do |file|
36
- classes.add_element(class_ = REXML::Element.new('class'))
37
- set_class_attributes(class_, file)
43
+ package.add_element(classes = REXML::Element.new('classes'))
38
44
 
39
- class_.add_element(REXML::Element.new('methods'))
40
- class_.add_element(lines = REXML::Element.new('lines'))
45
+ result.files.each do |file|
46
+ classes.add_element(class_ = REXML::Element.new('class'))
47
+ set_class_attributes(class_, file)
41
48
 
42
- file.lines.each do |file_line|
43
- if file_line.covered? || file_line.missed?
44
- lines.add_element(line = REXML::Element.new('line'))
45
- set_line_attributes(line, file_line)
49
+ class_.add_element(REXML::Element.new('methods'))
50
+ class_.add_element(lines = REXML::Element.new('lines'))
51
+
52
+ file.lines.each do |file_line|
53
+ if file_line.covered? || file_line.missed?
54
+ lines.add_element(line = REXML::Element.new('line'))
55
+ set_line_attributes(line, file_line)
56
+ end
57
+ end
46
58
  end
47
- end
48
- end
49
59
 
50
- doc.to_s
51
- end
60
+ doc
61
+ end
52
62
 
53
- def set_coverage_attributes(coverage, result)
54
- coverage.attributes['line-rate'] = (result.covered_percent/100).round(2).to_s
55
- coverage.attributes['branch-rate'] = '0'
56
- coverage.attributes['lines-covered'] = result.covered_lines.to_s
57
- coverage.attributes['lines-valid'] = (result.covered_lines + result.missed_lines).to_s
58
- coverage.attributes['branches-covered'] = '0'
59
- coverage.attributes['branches-valid'] = '0'
60
- coverage.attributes['branch-rate'] = '0'
61
- coverage.attributes['complexity'] = '0'
62
- coverage.attributes['version'] = '0'
63
- coverage.attributes['timestamp'] = Time.now.to_i.to_s
64
- end
63
+ def set_coverage_attributes(coverage, result)
64
+ coverage.attributes['line-rate'] = (result.covered_percent/100).round(2).to_s
65
+ coverage.attributes['branch-rate'] = '0'
66
+ coverage.attributes['lines-covered'] = result.covered_lines.to_s
67
+ coverage.attributes['lines-valid'] = (result.covered_lines + result.missed_lines).to_s
68
+ coverage.attributes['branches-covered'] = '0'
69
+ coverage.attributes['branches-valid'] = '0'
70
+ coverage.attributes['branch-rate'] = '0'
71
+ coverage.attributes['complexity'] = '0'
72
+ coverage.attributes['version'] = '0'
73
+ coverage.attributes['timestamp'] = Time.now.to_i.to_s
74
+ end
65
75
 
66
- def set_package_attributes(package, result)
67
- package.attributes['name'] = 'simplecov-cobertura'
68
- package.attributes['line-rate'] = (result.covered_percent/100).round(2).to_s
69
- package.attributes['branch-rate'] = '0'
70
- package.attributes['complexity'] = '0'
71
- end
76
+ def set_package_attributes(package, result)
77
+ package.attributes['name'] = 'simplecov-cobertura'
78
+ package.attributes['line-rate'] = (result.covered_percent/100).round(2).to_s
79
+ package.attributes['branch-rate'] = '0'
80
+ package.attributes['complexity'] = '0'
81
+ end
72
82
 
73
- def set_class_attributes(class_, file)
74
- filename = file.filename
75
- path = filename[SimpleCov.root.length+1..-1]
76
- class_.attributes['name'] = File.basename(filename, '.*')
77
- class_.attributes['filename'] = path
78
- class_.attributes['line-rate'] = (file.covered_percent/100).round(2).to_s
79
- class_.attributes['branch-rate'] = '0'
80
- class_.attributes['complexity'] = '0'
81
- end
83
+ def set_class_attributes(class_, file)
84
+ filename = file.filename
85
+ path = filename[SimpleCov.root.length+1..-1]
86
+ class_.attributes['name'] = File.basename(filename, '.*')
87
+ class_.attributes['filename'] = path
88
+ class_.attributes['line-rate'] = (file.covered_percent/100).round(2).to_s
89
+ class_.attributes['branch-rate'] = '0'
90
+ class_.attributes['complexity'] = '0'
91
+ end
82
92
 
83
- def set_line_attributes(line, file_line)
84
- line.attributes['number'] = file_line.line_number.to_s
85
- line.attributes['branch'] = 'false'
86
- line.attributes['hits'] = file_line.coverage.to_s
87
- end
93
+ def set_line_attributes(line, file_line)
94
+ line.attributes['number'] = file_line.line_number.to_s
95
+ line.attributes['branch'] = 'false'
96
+ line.attributes['hits'] = file_line.coverage.to_s
97
+ end
88
98
 
89
- def set_xml_head(lines=[])
90
- lines << "<!DOCTYPE coverage SYSTEM \"#{DTD_URL}\">"
91
- lines << '<!-- Generated by simplecov-cobertura -->'
92
- lines.join("\n")
99
+ def set_xml_head(lines=[])
100
+ lines << "<!DOCTYPE coverage SYSTEM \"#{DTD_URL}\">"
101
+ lines << "<!-- Generated by simplecov-cobertura version #{VERSION} (https://github.com/dashingrocket/simplecov-cobertura) -->"
102
+ lines.join("\n")
103
+ end
104
+ end
93
105
  end
94
106
  end
107
+
data/shippable.yml CHANGED
@@ -7,7 +7,8 @@ rvm:
7
7
  - 2.1.5
8
8
  - 2.0.0
9
9
  - 1.9.3
10
-
10
+ - jruby-19mode
11
+
11
12
  env:
12
13
  - CI_REPORTS=shippable/testresults COVERAGE_REPORTS=shippable/codecoverage
13
14
 
@@ -2,9 +2,11 @@
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
+ require 'simplecov-cobertura'
6
+
5
7
  Gem::Specification.new do |spec|
6
8
  spec.name = 'simplecov-cobertura'
7
- spec.version = '1.0.3.beta.1'
9
+ spec.version = SimpleCov::Formatter::CoberturaFormatter::VERSION
8
10
  spec.authors = ['Jesse Bowes']
9
11
  spec.email = ['jbowes@dashingrocket.com']
10
12
  spec.summary = 'SimpleCov Cobertura Formatter'
@@ -21,7 +23,7 @@ Gem::Specification.new do |spec|
21
23
  spec.add_development_dependency 'bundler', '~> 1.7'
22
24
  spec.add_development_dependency 'rake', '~> 10.0'
23
25
  spec.add_development_dependency 'ci_reporter_test_unit', '~> 1.0'
24
- spec.add_development_dependency 'libxml-ruby', '~> 2.7'
26
+ spec.add_development_dependency 'nokogiri'
25
27
 
26
28
  spec.add_runtime_dependency 'simplecov', '~> 0.8'
27
29
  end
@@ -1,6 +1,9 @@
1
1
  require 'test/unit'
2
- require 'libxml'
2
+
3
+ require 'nokogiri'
4
+
3
5
  require 'open-uri'
6
+ require 'simplecov'
4
7
  require 'simplecov-cobertura'
5
8
 
6
9
  class CoberturaFormatterTest < Test::Unit::TestCase
@@ -23,9 +26,8 @@ class CoberturaFormatterTest < Test::Unit::TestCase
23
26
 
24
27
  def test_format_dtd_validates
25
28
  xml = @formatter.format(@result)
26
- dtd_text = open(SimpleCov::Formatter::CoberturaFormatter::DTD_URL) { |io| io.read }
27
- dtd = LibXML::XML::Dtd.new(dtd_text)
28
- doc = LibXML::XML::Document.string(xml)
29
- assert_true doc.validate(dtd)
29
+ options = Nokogiri::XML::ParseOptions::DTDLOAD
30
+ doc = Nokogiri::XML::Document.parse(xml, nil, nil, options)
31
+ assert_empty doc.external_subset.validate(doc)
30
32
  end
31
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplecov-cobertura
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3.beta.1
4
+ version: 1.0.3.beta.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesse Bowes
@@ -14,70 +14,70 @@ dependencies:
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: ci_reporter_test_unit
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.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
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: libxml-ruby
56
+ name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: '2.7'
61
+ version: '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: '2.7'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.8'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.8'
83
83
  description: Produces Cobertura XML formatted output from SimpleCov
@@ -87,7 +87,7 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - ".gitignore"
90
+ - .gitignore
91
91
  - Gemfile
92
92
  - LICENSE
93
93
  - README.md
@@ -106,17 +106,17 @@ require_paths:
106
106
  - lib
107
107
  required_ruby_version: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
109
+ - - ! '>='
110
110
  - !ruby/object:Gem::Version
111
111
  version: 1.9.3
112
112
  required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ">"
114
+ - - ! '>'
115
115
  - !ruby/object:Gem::Version
116
116
  version: 1.3.1
117
117
  requirements: []
118
118
  rubyforge_project:
119
- rubygems_version: 2.5.1
119
+ rubygems_version: 2.4.6
120
120
  signing_key:
121
121
  specification_version: 4
122
122
  summary: SimpleCov Cobertura Formatter