codeclimate-test-reporter 0.4.0 → 0.4.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c2f9c2cd5324d8649ca2a3d3a473525bedbe365c
4
+ data.tar.gz: 07804f41564354ff8d7123d6c3f6c2f3650b1c41
5
+ SHA512:
6
+ metadata.gz: 3e8a40570da4dc86aafa4f1b6d6aab911e779f1d65ea6b61e91ff7b18f84f688c9ea8fbe5dec34bbda8d876b8e8c0d500d0180627851dcaf62546dd61f940b4f
7
+ data.tar.gz: a161bca31e7d2cd5355eefe921f4c4f01056a95268d9bc72b8108e48462c8527eb89f727a3ff5044103e51cef9a8ae3e3515723fce89ef71a78c190482f825f5
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ before_script:
3
+ - git config --global user.email "ci@codeclimate.com"
4
+ - git config --global user.name "Code Climate CI"
5
+ rvm:
6
+ - 1.9.3
7
+ - 2.1.2
8
+ - jruby
data/README.md CHANGED
@@ -46,6 +46,44 @@ end
46
46
  CodeClimate::TestReporter.start
47
47
  ```
48
48
 
49
+ ## Extending Simplecov with other formatters
50
+
51
+ Since ruby-test-reporter 0.4.0 you can use `CodeClimate::TestReporter::Formatter` as a Simplecov formatter directly. Just add the formatter to your Simplecov formatter in addition to the rest of your configuration:
52
+
53
+ ```ruby
54
+ require 'codeclimate-test-reporter'
55
+ SimpleCov.start do
56
+ formatter SimpleCov::Formatter::MultiFormatter[
57
+ SimpleCov::Formatter::HTMLFormatter,
58
+ CodeClimate::TestReporter::Formatter
59
+ ]
60
+ ...
61
+ end
62
+ ```
63
+
64
+ ## Using with [parallel_tests](https://github.com/grosser/parallel_tests)
65
+
66
+ Note: This may work with other parallel test runners as long as they run on the same machine.
67
+
68
+ Be sure you're using `simplecov` `>= 0.9.0`.
69
+
70
+ Add the following to your `test_helper.rb`/`spec_helper.rb` instead of what is normally required.
71
+
72
+ ```ruby
73
+ require 'simplecov'
74
+ require 'codeclimate-test-reporter'
75
+ SimpleCov.add_filter 'vendor'
76
+ SimpleCov.formatters = []
77
+ SimpleCov.start CodeClimate::TestReporter.configuration.profile
78
+ ```
79
+
80
+ Then after all your tests run, in a rake task or as a build step do:
81
+
82
+ ```
83
+ require 'simplecov'
84
+ require 'codeclimate-test-reporter'
85
+ CodeClimate::TestReporter::Formatter.new.format(SimpleCov.result)
86
+ ```
49
87
 
50
88
  ## Help! Your gem is raising a ...
51
89
 
@@ -6,7 +6,9 @@ module CodeClimate
6
6
  require "simplecov"
7
7
  ::SimpleCov.add_filter 'vendor'
8
8
  ::SimpleCov.formatter = Formatter
9
- ::SimpleCov.start(configuration.profile)
9
+ ::SimpleCov.start(configuration.profile) do
10
+ skip_token CodeClimate::TestReporter.configuration.skip_token
11
+ end
10
12
  end
11
13
  end
12
14
 
@@ -2,56 +2,65 @@ module CodeClimate
2
2
  module TestReporter
3
3
  class Ci
4
4
 
5
- def self.service_data
6
- if ENV['TRAVIS']
5
+ def self.service_data(env = ENV)
6
+ if env['TRAVIS']
7
7
  {
8
8
  name: "travis-ci",
9
- branch: ENV['TRAVIS_BRANCH'],
10
- build_identifier: ENV['TRAVIS_JOB_ID'],
11
- pull_request: ENV['TRAVIS_PULL_REQUEST']
9
+ branch: env['TRAVIS_BRANCH'],
10
+ build_identifier: env['TRAVIS_JOB_ID'],
11
+ pull_request: env['TRAVIS_PULL_REQUEST']
12
12
  }
13
- elsif ENV['CIRCLECI']
13
+ elsif env['CIRCLECI']
14
14
  {
15
15
  name: "circlci",
16
- build_identifier: ENV['CIRCLE_BUILD_NUM'],
17
- branch: ENV['CIRCLE_BRANCH'],
18
- commit_sha: ENV['CIRCLE_SHA1']
16
+ build_identifier: env['CIRCLE_BUILD_NUM'],
17
+ branch: env['CIRCLE_BRANCH'],
18
+ commit_sha: env['CIRCLE_SHA1']
19
19
  }
20
- elsif ENV['SEMAPHORE']
20
+ elsif env['SEMAPHORE']
21
21
  {
22
22
  name: "semaphore",
23
- branch: ENV['BRANCH_NAME'],
24
- build_identifier: ENV['SEMAPHORE_BUILD_NUMBER']
23
+ branch: env['BRANCH_NAME'],
24
+ build_identifier: env['SEMAPHORE_BUILD_NUMBER']
25
25
  }
26
- elsif ENV['JENKINS_URL']
26
+ elsif env['JENKINS_URL']
27
27
  {
28
28
  name: "jenkins",
29
- build_identifier: ENV['BUILD_NUMBER'],
30
- build_url: ENV['BUILD_URL'],
31
- branch: ENV['GIT_BRANCH'],
32
- commit_sha: ENV['GIT_COMMIT']
29
+ build_identifier: env['BUILD_NUMBER'],
30
+ build_url: env['BUILD_URL'],
31
+ branch: env['GIT_BRANCH'],
32
+ commit_sha: env['GIT_COMMIT']
33
33
  }
34
- elsif ENV['TDDIUM']
34
+ elsif env['TDDIUM']
35
35
  {
36
36
  name: "tddium",
37
- build_identifier: ENV['TDDIUM_SESSION_ID'],
38
- worker_id: ENV['TDDIUM_TID']
37
+ build_identifier: env['TDDIUM_SESSION_ID'],
38
+ worker_id: env['TDDIUM_TID']
39
39
  }
40
- elsif ENV['WERCKER']
40
+ elsif env['WERCKER']
41
41
  {
42
42
  name: "wercker",
43
- build_identifier: ENV['WERCKER_BUILD_ID'],
44
- build_url: ENV['WERCKER_BUILD_URL'],
45
- branch: ENV['WERCKER_GIT_BRANCH'],
46
- commit_sha: ENV['WERCKER_GIT_COMMIT']
43
+ build_identifier: env['WERCKER_BUILD_ID'],
44
+ build_url: env['WERCKER_BUILD_URL'],
45
+ branch: env['WERCKER_GIT_BRANCH'],
46
+ commit_sha: env['WERCKER_GIT_COMMIT']
47
47
  }
48
- elsif ENV['CI_NAME'] =~ /codeship/i
48
+ elsif env['CI_NAME'] =~ /DRONE/i
49
+ {
50
+ name: "drone",
51
+ build_identifier: env['CI_BUILD_NUMBER'],
52
+ build_url: env['CI_BUILD_URL'],
53
+ branch: env['CI_BRANCH'],
54
+ commit_sha: env['CI_BUILD_NUMBER'],
55
+ pull_request: env['CI_PULL_REQUEST']
56
+ }
57
+ elsif env['CI_NAME'] =~ /codeship/i
49
58
  {
50
59
  name: "codeship",
51
- build_identifier: ENV['CI_BUILD_NUMBER'],
52
- build_url: ENV['CI_BUILD_URL'],
53
- branch: ENV['CI_BRANCH'],
54
- commit_sha: ENV['CI_COMMIT_ID'],
60
+ build_identifier: env['CI_BUILD_NUMBER'],
61
+ build_url: env['CI_BUILD_URL'],
62
+ branch: env['CI_BRANCH'],
63
+ commit_sha: env['CI_COMMIT_ID'],
55
64
  }
56
65
  else
57
66
  {}
@@ -33,6 +33,10 @@ module CodeClimate
33
33
  @profile ||= "test_frameworks"
34
34
  end
35
35
 
36
+ def skip_token
37
+ @skip_token ||= "nocov"
38
+ end
39
+
36
40
  private
37
41
 
38
42
  def default_logger
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require "tmpdir"
2
4
  require "securerandom"
3
5
  require "json"
@@ -13,7 +15,7 @@ module CodeClimate
13
15
  def format(result)
14
16
  return true unless CodeClimate::TestReporter.run?
15
17
 
16
- print "Coverage = #{round(result.covered_percent, 2)}%. "
18
+ print "Coverage = #{result.source_files.covered_percent.round(2)}%. "
17
19
 
18
20
  payload = to_payload(result)
19
21
  PayloadValidator.validate(payload)
@@ -63,8 +65,8 @@ module CodeClimate
63
65
  repo_token: ENV["CODECLIMATE_REPO_TOKEN"],
64
66
  source_files: source_files,
65
67
  run_at: result.created_at.to_i,
66
- covered_percent: round(result.covered_percent, 2),
67
- covered_strength: round(result.covered_strength, 2),
68
+ covered_percent: result.source_files.covered_percent.round(2),
69
+ covered_strength: result.source_files.covered_strength.round(2),
68
70
  line_counts: totals,
69
71
  partial: partial?,
70
72
  git: Git.info,
@@ -80,10 +82,13 @@ module CodeClimate
80
82
  end
81
83
 
82
84
  def calculate_blob_id(path)
83
- content = File.open(path, "rb") {|f| f.read }
84
- header = "blob #{content.length}\0"
85
- store = header + content
86
- Digest::SHA1.hexdigest(store)
85
+ File.open(path, "rb") do |file|
86
+ header = "blob #{file.size}\0"
87
+ content = file.read.force_encoding("iso-8859-1").encode("utf-8", replace: nil)
88
+ store = header + content
89
+
90
+ return Digest::SHA1.hexdigest(store)
91
+ end
87
92
  end
88
93
 
89
94
  def short_filename(filename)
@@ -12,16 +12,21 @@ module CodeClimate
12
12
  end
13
13
 
14
14
  def branch_from_git_or_ci
15
- git_branch = branch_from_git
16
- ci_branch = Ci.service_data[:branch]
17
-
18
- if ci_branch.to_s.strip.size > 0
19
- ci_branch.sub(/^origin\//, "")
20
- elsif git_branch.to_s.strip.size > 0 && !git_branch.to_s.strip.start_with?("(")
21
- git_branch.sub(/^origin\//, "")
22
- else
23
- "master"
24
- end
15
+ clean_service_branch || clean_git_branch || "master"
16
+ end
17
+
18
+ def clean_service_branch
19
+ ci_branch = String(Ci.service_data[:branch])
20
+ clean = ci_branch.strip.sub(/^origin\//, "")
21
+
22
+ clean.size > 0 ? clean : nil
23
+ end
24
+
25
+ def clean_git_branch
26
+ git_branch = String(branch_from_git)
27
+ clean = git_branch.sub(/^origin\//, "") unless git_branch.start_with?("(")
28
+
29
+ clean.size > 0 ? clean : nil
25
30
  end
26
31
 
27
32
  private
@@ -32,9 +37,7 @@ module CodeClimate
32
37
  end
33
38
 
34
39
  def branch_from_git
35
- branch = `git branch`.split("\n").delete_if { |i| i[0] != "*" }
36
- branch = [branch].flatten.first
37
- branch ? branch.gsub("* ","") : nil
40
+ `git rev-parse --abbrev-ref HEAD`.chomp
38
41
  end
39
42
  end
40
43
  end
@@ -1,5 +1,5 @@
1
1
  module CodeClimate
2
2
  module TestReporter
3
- VERSION = "0.4.0"
3
+ VERSION = "0.4.1"
4
4
  end
5
5
  end
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ class EncodingTest
3
+ def foo
4
+ "ä"
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # encoding: iso-8859-1
2
+ class EncodingTest
3
+ def foo
4
+ "�"
5
+ end
6
+ end
@@ -5,15 +5,11 @@ module CodeClimate::TestReporter
5
5
 
6
6
  describe '.service_data' do
7
7
  before :each do
8
- ENV['SEMAPHORE'] = 'yes?'
9
- ENV['BRANCH_NAME'] = 'master'
10
- ENV['SEMAPHORE_BUILD_NUMBER'] = '1234'
11
- end
12
-
13
- after :each do
14
- ENV.delete('SEMAPHORE')
15
- ENV.delete('BRANCH_NAME')
16
- ENV.delete('SEMAPHORE_BUILD_NUMBER')
8
+ @env = {
9
+ 'SEMAPHORE' => 'yes?',
10
+ 'BRANCH_NAME' => 'master',
11
+ 'SEMAPHORE_BUILD_NUMBER' => '1234'
12
+ }
17
13
  end
18
14
 
19
15
  it 'returns a hash of CI environment info' do
@@ -23,9 +19,8 @@ module CodeClimate::TestReporter
23
19
  build_identifier: '1234'
24
20
  }
25
21
 
26
- expect(Ci.service_data).to include expected_semaphore_hash
22
+ expect(Ci.service_data(@env)).to include expected_semaphore_hash
27
23
  end
28
24
  end
29
-
30
25
  end
31
26
  end
@@ -14,6 +14,7 @@ module CodeClimate::TestReporter
14
14
  expect(CodeClimate::TestReporter.configuration.logger.level).to eq Logger::INFO
15
15
  expect(CodeClimate::TestReporter.configuration.profile).to eq('test_frameworks')
16
16
  expect(CodeClimate::TestReporter.configuration.path_prefix).to be_nil
17
+ expect(CodeClimate::TestReporter.configuration.skip_token).to eq('nocov')
17
18
  end
18
19
  end
19
20
 
@@ -6,6 +6,12 @@ module CodeClimate::TestReporter
6
6
  let(:project_path) { "spec/tmp" }
7
7
  let(:project_file) { "fake_project.rb" }
8
8
  let(:formatter) { Formatter.new }
9
+ let(:source_files) {
10
+ double(
11
+ :covered_percent => 24.3,
12
+ :covered_strength => 33.2,
13
+ )
14
+ }
9
15
  let(:files) {
10
16
  [
11
17
  double(
@@ -25,6 +31,7 @@ module CodeClimate::TestReporter
25
31
  :covered_percent => 24.3,
26
32
  :covered_strength => 33.2,
27
33
  :files => files,
34
+ :source_files => source_files,
28
35
  :created_at => Time.at(1379704336),
29
36
  :command_name => "rspec"
30
37
  )
@@ -63,7 +70,6 @@ module CodeClimate::TestReporter
63
70
  "simplecov_root" => Dir.pwd,
64
71
  "gem_version" => VERSION
65
72
  },
66
- "ci_service" => {}
67
73
  }
68
74
  }
69
75
 
@@ -99,34 +105,46 @@ module CodeClimate::TestReporter
99
105
 
100
106
  uncompressed = inflate(app.request_body)
101
107
 
102
- expect(JSON.parse(uncompressed)).to eq(expected_request)
108
+ expected_request.merge!("ci_service" => Ci.service_data)
109
+ expected_json = JSON.parse(expected_request.to_json, symbolize_names: true)
110
+
111
+ expect(JSON.parse(uncompressed, symbolize_names: true)).to eq(expected_json)
103
112
  expect(app.http_user_agent).to include("v#{CodeClimate::TestReporter::VERSION}")
104
113
  end
105
- end
106
114
 
107
- describe '#short_filename' do
108
- let(:formatter) { CodeClimate::TestReporter::Formatter.new }
109
- it 'should return the filename of the file relative to the SimpleCov root' do
110
- expect(formatter.short_filename('file1')).to eq('file1')
111
- expect(formatter.short_filename("#{::SimpleCov.root}/file1")).to eq('file1')
112
- end
115
+ describe '#short_filename' do
116
+ it 'should return the filename of the file relative to the SimpleCov root' do
117
+ expect(formatter.short_filename('file1')).to eq('file1')
118
+ expect(formatter.short_filename("#{::SimpleCov.root}/file1")).to eq('file1')
119
+ end
113
120
 
114
- context "with path prefix" do
115
- before do
116
- CodeClimate::TestReporter.configure do |config|
117
- config.path_prefix = 'custom'
121
+ context "with path prefix" do
122
+ before do
123
+ CodeClimate::TestReporter.configure do |config|
124
+ config.path_prefix = 'custom'
125
+ end
118
126
  end
119
- end
120
127
 
121
- after do
122
- CodeClimate::TestReporter.configure do |config|
123
- config.path_prefix = nil
128
+ after do
129
+ CodeClimate::TestReporter.configure do |config|
130
+ config.path_prefix = nil
131
+ end
132
+ end
133
+
134
+ it 'should include the path prefix if set' do
135
+ expect(formatter.short_filename('file1')).to eq('custom/file1')
136
+ expect(formatter.short_filename("#{::SimpleCov.root}/file1")).to eq('custom/file1')
124
137
  end
125
138
  end
139
+ end
140
+
141
+ describe "#calculate_blob_id" do
142
+ it "forces UTF-8 as encoding for the file content" do
143
+ blob_id = formatter.calculate_blob_id(File.expand_path("../../fixtures/encoding_test_iso.rb", __FILE__))
144
+ expect(blob_id).to_not be_nil
126
145
 
127
- it 'should include the path prefix if set' do
128
- expect(formatter.short_filename('file1')).to eq('custom/file1')
129
- expect(formatter.short_filename("#{::SimpleCov.root}/file1")).to eq('custom/file1')
146
+ blob_id = formatter.calculate_blob_id(File.expand_path("../../fixtures/encoding_test.rb", __FILE__))
147
+ expect(blob_id).to_not be_nil
130
148
  end
131
149
  end
132
150
  end
@@ -24,7 +24,7 @@ module CodeClimate::TestReporter
24
24
  it 'returns the branch from git if there is no ci branch' do
25
25
  allow(Ci).to receive(:service_data).and_return({})
26
26
 
27
- expect(Git.branch_from_git_or_ci).to eq Git.send(:branch_from_git)
27
+ expect(Git.branch_from_git_or_ci).to eq Git.clean_git_branch
28
28
  end
29
29
 
30
30
  it 'returns master otherwise' do
metadata CHANGED
@@ -1,116 +1,103 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codeclimate-test-reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 0.4.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bryan Helmkamp
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-08-01 00:00:00.000000000 Z
11
+ date: 2014-09-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: simplecov
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.7.1
22
- - - <
20
+ - - "<"
23
21
  - !ruby/object:Gem::Version
24
22
  version: 1.0.0
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
- - - ! '>='
27
+ - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: 0.7.1
33
- - - <
30
+ - - "<"
34
31
  - !ruby/object:Gem::Version
35
32
  version: 1.0.0
36
33
  - !ruby/object:Gem::Dependency
37
34
  name: bundler
38
35
  requirement: !ruby/object:Gem::Requirement
39
- none: false
40
36
  requirements:
41
- - - ~>
37
+ - - "~>"
42
38
  - !ruby/object:Gem::Version
43
39
  version: '1.3'
44
40
  type: :development
45
41
  prerelease: false
46
42
  version_requirements: !ruby/object:Gem::Requirement
47
- none: false
48
43
  requirements:
49
- - - ~>
44
+ - - "~>"
50
45
  - !ruby/object:Gem::Version
51
46
  version: '1.3'
52
47
  - !ruby/object:Gem::Dependency
53
48
  name: rake
54
49
  requirement: !ruby/object:Gem::Requirement
55
- none: false
56
50
  requirements:
57
- - - ! '>='
51
+ - - ">="
58
52
  - !ruby/object:Gem::Version
59
53
  version: '0'
60
54
  type: :development
61
55
  prerelease: false
62
56
  version_requirements: !ruby/object:Gem::Requirement
63
- none: false
64
57
  requirements:
65
- - - ! '>='
58
+ - - ">="
66
59
  - !ruby/object:Gem::Version
67
60
  version: '0'
68
61
  - !ruby/object:Gem::Dependency
69
62
  name: rspec
70
63
  requirement: !ruby/object:Gem::Requirement
71
- none: false
72
64
  requirements:
73
- - - ! '>='
65
+ - - ">="
74
66
  - !ruby/object:Gem::Version
75
67
  version: '0'
76
68
  type: :development
77
69
  prerelease: false
78
70
  version_requirements: !ruby/object:Gem::Requirement
79
- none: false
80
71
  requirements:
81
- - - ! '>='
72
+ - - ">="
82
73
  - !ruby/object:Gem::Version
83
74
  version: '0'
84
75
  - !ruby/object:Gem::Dependency
85
76
  name: artifice
86
77
  requirement: !ruby/object:Gem::Requirement
87
- none: false
88
78
  requirements:
89
- - - ! '>='
79
+ - - ">="
90
80
  - !ruby/object:Gem::Version
91
81
  version: '0'
92
82
  type: :development
93
83
  prerelease: false
94
84
  version_requirements: !ruby/object:Gem::Requirement
95
- none: false
96
85
  requirements:
97
- - - ! '>='
86
+ - - ">="
98
87
  - !ruby/object:Gem::Version
99
88
  version: '0'
100
89
  - !ruby/object:Gem::Dependency
101
90
  name: pry
102
91
  requirement: !ruby/object:Gem::Requirement
103
- none: false
104
92
  requirements:
105
- - - ! '>='
93
+ - - ">="
106
94
  - !ruby/object:Gem::Version
107
95
  version: '0'
108
96
  type: :development
109
97
  prerelease: false
110
98
  version_requirements: !ruby/object:Gem::Requirement
111
- none: false
112
99
  requirements:
113
- - - ! '>='
100
+ - - ">="
114
101
  - !ruby/object:Gem::Version
115
102
  version: '0'
116
103
  description: Collects test coverage data from your Ruby test suite and sends it to
@@ -122,8 +109,9 @@ executables:
122
109
  extensions: []
123
110
  extra_rdoc_files: []
124
111
  files:
125
- - .gitignore
126
- - .rspec
112
+ - ".gitignore"
113
+ - ".rspec"
114
+ - ".travis.yml"
127
115
  - Gemfile
128
116
  - LICENSE.txt
129
117
  - README.md
@@ -141,6 +129,8 @@ files:
141
129
  - lib/code_climate/test_reporter/payload_validator.rb
142
130
  - lib/code_climate/test_reporter/version.rb
143
131
  - lib/codeclimate-test-reporter.rb
132
+ - spec/fixtures/encoding_test.rb
133
+ - spec/fixtures/encoding_test_iso.rb
144
134
  - spec/lib/ci_spec.rb
145
135
  - spec/lib/configuration_spec.rb
146
136
  - spec/lib/formatter_spec.rb
@@ -151,29 +141,30 @@ files:
151
141
  homepage: ''
152
142
  licenses:
153
143
  - MIT
144
+ metadata: {}
154
145
  post_install_message:
155
146
  rdoc_options: []
156
147
  require_paths:
157
148
  - lib
158
149
  required_ruby_version: !ruby/object:Gem::Requirement
159
- none: false
160
150
  requirements:
161
- - - ! '>='
151
+ - - ">="
162
152
  - !ruby/object:Gem::Version
163
153
  version: '0'
164
154
  required_rubygems_version: !ruby/object:Gem::Requirement
165
- none: false
166
155
  requirements:
167
- - - ! '>='
156
+ - - ">="
168
157
  - !ruby/object:Gem::Version
169
158
  version: '0'
170
159
  requirements: []
171
160
  rubyforge_project:
172
- rubygems_version: 1.8.23.2
161
+ rubygems_version: 2.2.2
173
162
  signing_key:
174
- specification_version: 3
163
+ specification_version: 4
175
164
  summary: Uploads Ruby test coverage data to Code Climate.
176
165
  test_files:
166
+ - spec/fixtures/encoding_test.rb
167
+ - spec/fixtures/encoding_test_iso.rb
177
168
  - spec/lib/ci_spec.rb
178
169
  - spec/lib/configuration_spec.rb
179
170
  - spec/lib/formatter_spec.rb
@@ -181,4 +172,3 @@ test_files:
181
172
  - spec/lib/payload_validator_spec.rb
182
173
  - spec/lib/test_reporter_spec.rb
183
174
  - spec/spec_helper.rb
184
- has_rdoc: