coverband 4.2.0 → 4.2.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +29 -9
  3. data/.travis.yml +9 -1
  4. data/Gemfile +2 -1
  5. data/Gemfile.rails4 +1 -0
  6. data/README.md +34 -13
  7. data/Rakefile +10 -2
  8. data/changes.md +25 -10
  9. data/coverband.gemspec +5 -1
  10. data/lib/coverband.rb +30 -18
  11. data/lib/coverband/adapters/base.rb +2 -7
  12. data/lib/coverband/adapters/file_store.rb +1 -1
  13. data/lib/coverband/at_exit.rb +2 -11
  14. data/lib/coverband/collectors/coverage.rb +29 -32
  15. data/lib/coverband/collectors/delta.rb +20 -24
  16. data/lib/coverband/configuration.rb +49 -19
  17. data/lib/coverband/integrations/background.rb +6 -4
  18. data/lib/coverband/integrations/{middleware.rb → background_middleware.rb} +2 -6
  19. data/lib/coverband/integrations/bundler.rb +8 -0
  20. data/lib/coverband/integrations/report_middleware.rb +15 -0
  21. data/lib/coverband/integrations/resque.rb +3 -5
  22. data/lib/coverband/reporters/base.rb +39 -13
  23. data/lib/coverband/reporters/html_report.rb +21 -27
  24. data/lib/coverband/reporters/web.rb +2 -21
  25. data/lib/coverband/utils/file_list.rb +16 -5
  26. data/lib/coverband/utils/file_path_helper.rb +2 -0
  27. data/lib/coverband/utils/html_formatter.rb +25 -8
  28. data/lib/coverband/utils/lines_classifier.rb +5 -0
  29. data/lib/coverband/utils/railtie.rb +11 -12
  30. data/lib/coverband/utils/result.rb +5 -44
  31. data/lib/coverband/utils/results.rb +51 -0
  32. data/lib/coverband/utils/source_file.rb +29 -5
  33. data/lib/coverband/utils/tasks.rb +11 -2
  34. data/lib/coverband/version.rb +1 -1
  35. data/public/application.js +27 -0
  36. data/test/benchmarks/benchmark.rake +10 -20
  37. data/test/coverband/adapters/file_store_test.rb +5 -5
  38. data/test/coverband/adapters/redis_store_test.rb +8 -7
  39. data/test/coverband/at_exit_test.rb +0 -2
  40. data/test/coverband/collectors/coverage_test.rb +57 -9
  41. data/test/coverband/collectors/delta_test.rb +27 -6
  42. data/test/coverband/configuration_test.rb +47 -7
  43. data/test/coverband/coverband_test.rb +0 -1
  44. data/test/coverband/integrations/background_middleware_test.rb +44 -0
  45. data/test/coverband/integrations/background_test.rb +1 -3
  46. data/test/coverband/integrations/report_middleware_test.rb +44 -0
  47. data/test/coverband/integrations/resque_worker_test.rb +4 -3
  48. data/test/coverband/integrations/test_resque_job.rb +3 -1
  49. data/test/coverband/reporters/base_test.rb +4 -4
  50. data/test/coverband/reporters/console_test.rb +1 -2
  51. data/test/coverband/reporters/html_test.rb +79 -16
  52. data/test/coverband/reporters/web_test.rb +0 -10
  53. data/test/coverband/utils/file_groups_test.rb +1 -1
  54. data/test/coverband/utils/file_list_test.rb +5 -5
  55. data/test/coverband/utils/html_formatter_test.rb +45 -0
  56. data/test/coverband/utils/result_test.rb +27 -47
  57. data/test/coverband/utils/results_test.rb +54 -0
  58. data/test/coverband/utils/s3_report_test.rb +2 -0
  59. data/test/coverband/utils/source_file_test.rb +50 -0
  60. data/test/forked/rails_full_stack_test.rb +101 -0
  61. data/test/forked/rails_rake_full_stack_test.rb +32 -0
  62. data/test/integration/full_stack_test.rb +17 -15
  63. data/test/rails4_dummy/Rakefile +6 -0
  64. data/test/rails4_dummy/config/application.rb +8 -9
  65. data/test/rails4_dummy/config/coverband.rb +3 -3
  66. data/test/rails5_dummy/Rakefile +6 -0
  67. data/test/rails5_dummy/config/application.rb +6 -10
  68. data/test/rails5_dummy/config/coverband.rb +2 -2
  69. data/test/rails_test_helper.rb +23 -4
  70. data/test/test_helper.rb +26 -1
  71. data/test/unique_files.rb +6 -5
  72. data/views/file_list.erb +2 -2
  73. data/views/gem_list.erb +10 -1
  74. data/views/layout.erb +10 -3
  75. data/views/source_file.erb +13 -4
  76. data/views/source_file_loader.erb +1 -1
  77. metadata +79 -9
  78. data/test/coverband/integrations/middleware_test.rb +0 -96
  79. data/test/integration/rails_full_stack_test.rb +0 -95
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -1,15 +1,14 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('boot', __dir__)
4
+
5
+ require 'rails'
6
+ require 'action_controller/railtie'
7
+ require 'coverband'
8
+ Bundler.require(*Rails.groups)
2
9
 
3
- require "rails"
4
- require "action_controller/railtie"
5
10
  module Rails4Dummy
6
11
  class Application < Rails::Application
7
- # Coverband needs to be setup before any of the initializers to capture usage of them
8
- Coverband.configure(File.open("#{Rails.root}/config/coverband.rb"))
9
- config.middleware.use Coverband::Middleware
10
- config.before_initialize do
11
- Coverband.start
12
- end
13
12
  config.eager_load = true
14
13
  end
15
14
  end
@@ -1,11 +1,11 @@
1
1
  Coverband.configure do |config|
2
2
  config.root = Dir.pwd
3
- config.store = Coverband::Adapters::RedisStore.new(Redis.new(url: ENV['REDIS_URL'])) if defined? Redis
3
+ config.store = Coverband::Adapters::RedisStore.new(Redis.new(url: ENV['REDIS_URL']), redis_namespace: 'coverband_test') if defined? Redis
4
4
  config.ignore = %w[vendor .erb$ .slim$]
5
5
  config.root_paths = []
6
- config.logger = Rails.logger
6
+ config.logger = Rails.logger
7
7
  config.verbose = true
8
- config.background_reporting_enabled = false
8
+ config.background_reporting_enabled = true
9
9
  config.track_gems = true
10
10
  config.gem_details = true
11
11
  end
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -1,16 +1,12 @@
1
- require "rails"
2
- require "action_controller/railtie"
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails'
4
+ require 'action_controller/railtie'
3
5
  require 'coverband'
6
+ Bundler.require(*Rails.groups)
4
7
 
5
- module Dummy
8
+ module Rails5Dummy
6
9
  class Application < Rails::Application
7
- # Coverband needs to be setup before any of the initializers to capture usage of them
8
- Coverband.configure(File.open("#{Rails.root}/config/coverband.rb"))
9
- config.middleware.use Coverband::Middleware
10
- config.before_initialize do
11
- Coverband.start
12
- end
13
10
  config.eager_load = true
14
11
  end
15
12
  end
16
-
@@ -1,11 +1,11 @@
1
1
  Coverband.configure do |config|
2
2
  config.root = Dir.pwd
3
- config.store = Coverband::Adapters::RedisStore.new(Redis.new(url: ENV['REDIS_URL'])) if defined? Redis
3
+ config.store = Coverband::Adapters::RedisStore.new(Redis.new(url: ENV['REDIS_URL']), redis_namespace: 'coverband_test') if defined? Redis
4
4
  config.ignore = %w[vendor .erb$ .slim$]
5
5
  config.root_paths = []
6
6
  config.logger = Rails.logger
7
7
  config.verbose = true
8
- config.background_reporting_enabled = false
8
+ config.background_reporting_enabled = true
9
9
  config.track_gems = true
10
10
  config.gem_details = true
11
11
  end
@@ -1,16 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'selenium-webdriver'
4
+ require 'webdrivers'
5
+ require 'minitest'
6
+ require 'minitest/fork_executor'
7
+
8
+ # Forked executor includes autorun which does not work with qrush/m
9
+ # https://github.com/qrush/m/issues/26
10
+ # https://github.com/seattlerb/minitest/blob/master/lib/minitest/autorun.rb
11
+ if defined?(M)
12
+ Minitest.class_eval do
13
+ def self.autorun
14
+ puts 'No autorunning'
15
+ end
16
+ end
17
+ end
18
+
19
+ Minitest.parallel_executor = Minitest::ForkExecutor.new
1
20
  require File.expand_path('./test_helper', File.dirname(__FILE__))
2
21
  require 'capybara'
3
22
  require 'capybara/minitest'
4
23
  def rails_setup
5
- ENV["RAILS_ENV"] = "test"
24
+ ENV['RAILS_ENV'] = 'test'
6
25
  require 'rails'
7
- #coverband must be required after rails
26
+ # coverband must be required after rails
8
27
  load 'coverband/utils/railtie.rb'
9
28
  Coverband.configure("./test/rails#{Rails::VERSION::MAJOR}_dummy/config/coverband.rb")
10
29
  require_relative "../test/rails#{Rails::VERSION::MAJOR}_dummy/config/environment"
11
30
  require 'capybara/rails'
12
- #Our coverage report is wrapped in display:none as of now
31
+ # Our coverage report is wrapped in display:none as of now
13
32
  Capybara.ignore_hidden_elements = false
14
33
  require 'mocha/minitest'
34
+ Capybara.server = :webrick
15
35
  end
16
-
@@ -7,8 +7,8 @@ original_verbosity = $VERBOSE
7
7
  $VERBOSE = nil
8
8
  require 'rubygems'
9
9
  require 'aws-sdk-s3'
10
- require 'coveralls'
11
10
  require 'simplecov'
11
+ require 'coveralls'
12
12
  require 'minitest/autorun'
13
13
  require 'mocha/minitest'
14
14
  require 'ostruct'
@@ -19,17 +19,25 @@ require 'pry-byebug'
19
19
  require_relative 'unique_files'
20
20
  $VERBOSE = original_verbosity
21
21
 
22
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
23
+ SimpleCov.start do
24
+ add_filter 'test/forked'
25
+ end
26
+
22
27
  Coveralls.wear!
23
28
 
24
29
  module Coverband
25
30
  module Test
26
31
  def self.reset
32
+ Coverband.configuration.redis_namespace = 'coverband_test'
33
+ Coverband.configuration.store.instance_variable_set(:@redis_namespace, 'coverband_test')
27
34
  [:eager_loading, nil].each do |type|
28
35
  Coverband.configuration.store.type = type
29
36
  Coverband.configuration.store.clear!
30
37
  end
31
38
  Coverband.configuration.reset
32
39
  Coverband::Collectors::Coverage.instance.reset_instance
40
+ Coverband.configuration.redis_namespace = 'coverband_test'
33
41
  Coverband::Background.stop
34
42
  end
35
43
 
@@ -60,6 +68,7 @@ def test(name, &block)
60
68
  false
61
69
  end
62
70
  raise "#{test_name} is already defined in #{self}" if defined
71
+
63
72
  if block_given?
64
73
  define_method(test_name, &block)
65
74
  else
@@ -83,10 +92,26 @@ def basic_coverage
83
92
  { 'app_path/dog.rb' => example_line }
84
93
  end
85
94
 
95
+ def basic_coverage_full_path
96
+ { basic_coverage_file_full_path => example_line }
97
+ end
98
+
99
+ def basic_source_fixture_coverage
100
+ { source_fixture('sample.rb') => example_line }
101
+ end
102
+
103
+ def basic_coverage_file_full_path
104
+ "#{test_root}/dog.rb"
105
+ end
106
+
86
107
  def source_fixture(filename)
87
108
  File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', filename))
88
109
  end
89
110
 
111
+ def fixtures_root
112
+ File.expand_path(File.join(File.dirname(__FILE__), 'fixtures'))
113
+ end
114
+
90
115
  def test_root
91
116
  File.expand_path(File.join(File.dirname(__FILE__)))
92
117
  end
@@ -3,15 +3,16 @@
3
3
  require 'securerandom'
4
4
  require 'fileutils'
5
5
 
6
- UNIQUE_FILES_DIR = "./test/unique_files"
6
+ UNIQUE_FILES_DIR = './test/unique_files'
7
7
 
8
8
  def require_unique_file(file = 'dog.rb')
9
- dir = "#{UNIQUE_FILES_DIR}/#{SecureRandom.uuid}"
10
- FileUtils.mkdir_p(dir)
9
+ uuid = SecureRandom.uuid
10
+ dir = "#{UNIQUE_FILES_DIR}/#{uuid}"
11
11
  temp_file = "#{dir}/#{file}"
12
- File.open(temp_file, 'w'){ |w| w.write(File.read("./test/#{file}")) }
12
+ FileUtils.mkdir_p(Pathname.new(temp_file).dirname.to_s)
13
+ File.open(temp_file, 'w') { |w| w.write(File.read("./test/#{file}")) }
13
14
  require temp_file
14
- temp_file
15
+ Coverband::Utils::FilePathHelper.full_path_to_relative(File.expand_path(temp_file))
15
16
  end
16
17
 
17
18
  def remove_unique_files
@@ -39,7 +39,7 @@
39
39
  <%= link_to_source_file(source_file) %>
40
40
  </td>
41
41
  <td class="<%= coverage_css_class(source_file.covered_percent) %> strong"><%= source_file.covered_percent.round(2).to_s %> %</td>
42
- <% runtime_percentage = result.file_with_type(source_file, Coverband::RUNTIME_TYPE).try(:covered_percent).try(:round, 2) %>
42
+ <% runtime_percentage = result.runtime_relevant_coverage(source_file) %>
43
43
  <td class="<%= "#{coverage_css_class(runtime_percentage)}" %> strong">
44
44
  <%= "#{runtime_percentage || '0'} %" %>
45
45
  </td>
@@ -47,7 +47,7 @@
47
47
  <td><%= source_file.covered_lines.count + source_file.missed_lines.count %></td>
48
48
  <td><%= source_file.covered_lines.count %></td>
49
49
  <td>
50
- <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE).try(:covered_lines).try(:count) || 0 %>
50
+ <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE)&.covered_lines_count || 0 %>
51
51
  </td>
52
52
  <td><%= source_file.missed_lines.count %></td>
53
53
  <td><%= source_file.covered_strength %></td>
@@ -20,8 +20,10 @@
20
20
  <tr>
21
21
  <th>Gem</th>
22
22
  <th>% covered</th>
23
+ <th>% runtime</th>
23
24
  <th>Relevant Lines</th>
24
25
  <th>Lines covered</th>
26
+ <th>Lines runtime</th>
25
27
  <th>Lines missed</th>
26
28
  <th>Avg. Hits / Line</th>
27
29
  </tr>
@@ -37,10 +39,17 @@
37
39
  <% end %>
38
40
  </td>
39
41
  <td class="<%= coverage_css_class(source_file.covered_percent) %> strong"><%= source_file.covered_percent.round(2).to_s %> %</td>
42
+ <% runtime_percentage = result.group_file_list_with_type(title, source_file, Coverband::RUNTIME_TYPE)&.formatted_covered_percent %>
43
+ <td class="<%= "#{coverage_css_class(runtime_percentage)}" %> strong">
44
+ <%= "#{runtime_percentage || '0'} %" %>
45
+ </td>
40
46
  <td><%= source_file.covered_lines + source_file.missed_lines %></td>
41
47
  <td><%= source_file.covered_lines %></td>
48
+ <td>
49
+ <%= result.group_file_list_with_type(title, source_file, Coverband::RUNTIME_TYPE)&.covered_lines || 0 %>
50
+ </td>
42
51
  <td><%= source_file.missed_lines %></td>
43
- <td><%= source_file.covered_strength %></td>
52
+ <td><%= source_file.covered_strength.round(1) %></td>
44
53
  </tr>
45
54
  <% end %>
46
55
  </tbody>
@@ -18,8 +18,6 @@
18
18
  <div id="header">
19
19
  <a href='<%= base_path %>'>Coverband Admin</a> &nbsp;
20
20
  <a href='<%= base_path %>settings'>Info</a> &nbsp;
21
- <%= button("#{base_path}collect_coverage", 'force coverage collection') %> &nbsp;
22
- <%= button("#{base_path}reload_files", 'reload Coverband files') %> &nbsp;
23
21
  <% if Coverband.configuration.web_enable_clear %>
24
22
  <%= button("#{base_path}clear", 'clear coverage report', delete: true) %>
25
23
  <% end %>
@@ -31,6 +29,11 @@
31
29
  <div class="notice"><%= notice %></div>
32
30
  <% end %>
33
31
  <div class="timestamp">Generated <%= timeago(Time.now) %></div>
32
+ <br/>
33
+ <div class="timestamp">
34
+ Coverage Recording Started: <%= timeago(result.source_files.first_seen_at) %>
35
+ </div>
36
+
34
37
  <ul class="group_tabs"></ul>
35
38
 
36
39
  <div id="content">
@@ -48,7 +51,11 @@
48
51
  <div class="source_files">
49
52
  <% result.source_files.each do |source_file| %>
50
53
  <% if (!source_file.gem? || (view_gems? && gem_details? && source_file.gem? )) %>
51
- <%= formatted_source_file_loader(result, source_file) %>
54
+ <% if static_html? %>
55
+ <%= formatted_source_file(result, source_file) %>
56
+ <% else %>
57
+ <%= formatted_source_file_loader(result, source_file) %>
58
+ <% end %>
52
59
  <% end %>
53
60
  <% end %>
54
61
  </div>
@@ -2,14 +2,23 @@
2
2
  <div class="header">
3
3
  <h3><%= shortened_filename source_file %></h3>
4
4
  <h4>
5
- <span class="<%= coverage_css_class(source_file.covered_percent) %>"><%= source_file.covered_percent.round(2).to_s %> %</span>
6
- covered
5
+ <span class="<%= coverage_css_class(source_file.covered_percent) %>">
6
+ <%= source_file.covered_percent.round(2).to_s %> %
7
+ </span>
8
+ covered,
9
+
10
+ <span class="<%= coverage_css_class(source_file.covered_percent) %>">
11
+ <%= result.runtime_relevant_coverage(source_file) %> %
12
+ </span>
13
+ runtime covered
14
+
7
15
  <% if Coverband.configuration.web_enable_clear %>
8
16
  <%= button("#{base_path}clear_file?filename=#{source_file.relative_path}", 'clear file coverage') %> &nbsp;
9
17
  <% end %>
10
18
  </h4>
11
19
  <div>
12
20
  <b><%= source_file.lines_of_code %></b> relevant lines.
21
+ <b><%= result.runtime_relavent_lines(source_file) %></b> runtime relevant lines.
13
22
  <span class="green"><b><%= source_file.covered_lines.count %></b> lines covered</span> and
14
23
  <span class="red"><b><%= source_file.missed_lines.count %></b> lines missed.</span>
15
24
  </div>
@@ -25,9 +34,9 @@
25
34
  <li class="<%= line.status %>" data-hits="<%= line.coverage ? line.coverage : '' %>" data-linenumber="<%= line.number %>">
26
35
  <% if line.covered? %><span class="hits">
27
36
  load:
28
- <%= result.file_with_type(source_file, Coverband::EAGER_TYPE).try(:lines).try(:[], index).try(:coverage) || 0 %>,
37
+ <%= result.file_with_type(source_file, Coverband::EAGER_TYPE)&.line_coverage(index) || 0 %>,
29
38
  runtime:
30
- <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE).try(:lines).try(:[], index).try(:coverage) || 0 %>
39
+ <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE)&.line_coverage(index) || 0 %>
31
40
  all: <%= line.coverage %>
32
41
  </span><% end %>
33
42
  <% if line.skipped? %><span class="hits">skipped</span><% end %>
@@ -1,6 +1,6 @@
1
1
  <div class="source_table" id="<%= id source_file %>" data-loader-url="<%= base_path %>load_file_details?filename=<%= source_file.filename %>">
2
2
  <div class='loader'>
3
- loading...
3
+ loading source data...
4
4
  <br/>
5
5
  <img src="<%= assets_path('loading.gif') %>" alt="loading"/>
6
6
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coverband
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.2.1.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Mayer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-04-24 00:00:00.000000000 Z
12
+ date: 2019-05-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-s3
@@ -95,6 +95,20 @@ dependencies:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: minitest-fork_executor
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
98
112
  - !ruby/object:Gem::Dependency
99
113
  name: mocha
100
114
  requirement: !ruby/object:Gem::Requirement
@@ -165,6 +179,48 @@ dependencies:
165
179
  - - ">="
166
180
  - !ruby/object:Gem::Version
167
181
  version: '0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: rubocop
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: selenium-webdriver
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: webdrivers
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: '3.0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - "~>"
222
+ - !ruby/object:Gem::Version
223
+ version: '3.0'
168
224
  - !ruby/object:Gem::Dependency
169
225
  name: minitest-reporters
170
226
  requirement: !ruby/object:Gem::Requirement
@@ -277,8 +333,10 @@ files:
277
333
  - lib/coverband/collectors/delta.rb
278
334
  - lib/coverband/configuration.rb
279
335
  - lib/coverband/integrations/background.rb
280
- - lib/coverband/integrations/middleware.rb
336
+ - lib/coverband/integrations/background_middleware.rb
337
+ - lib/coverband/integrations/bundler.rb
281
338
  - lib/coverband/integrations/rack_server_check.rb
339
+ - lib/coverband/integrations/report_middleware.rb
282
340
  - lib/coverband/integrations/resque.rb
283
341
  - lib/coverband/reporters/base.rb
284
342
  - lib/coverband/reporters/console_report.rb
@@ -336,9 +394,10 @@ files:
336
394
  - test/coverband/collectors/delta_test.rb
337
395
  - test/coverband/configuration_test.rb
338
396
  - test/coverband/coverband_test.rb
397
+ - test/coverband/integrations/background_middleware_test.rb
339
398
  - test/coverband/integrations/background_test.rb
340
- - test/coverband/integrations/middleware_test.rb
341
399
  - test/coverband/integrations/rack_server_check_test.rb
400
+ - test/coverband/integrations/report_middleware_test.rb
342
401
  - test/coverband/integrations/resque_worker_test.rb
343
402
  - test/coverband/integrations/test_resque_job.rb
344
403
  - test/coverband/reporters/base_test.rb
@@ -348,8 +407,10 @@ files:
348
407
  - test/coverband/utils/file_groups_test.rb
349
408
  - test/coverband/utils/file_list_test.rb
350
409
  - test/coverband/utils/gem_list_test.rb
410
+ - test/coverband/utils/html_formatter_test.rb
351
411
  - test/coverband/utils/lines_classifier_test.rb
352
412
  - test/coverband/utils/result_test.rb
413
+ - test/coverband/utils/results_test.rb
353
414
  - test/coverband/utils/s3_report_test.rb
354
415
  - test/coverband/utils/source_file_line_test.rb
355
416
  - test/coverband/utils/source_file_test.rb
@@ -362,8 +423,10 @@ files:
362
423
  - test/fixtures/skipped.rb
363
424
  - test/fixtures/skipped_and_executed.rb
364
425
  - test/fixtures/utf-8.rb
426
+ - test/forked/rails_full_stack_test.rb
427
+ - test/forked/rails_rake_full_stack_test.rb
365
428
  - test/integration/full_stack_test.rb
366
- - test/integration/rails_full_stack_test.rb
429
+ - test/rails4_dummy/Rakefile
367
430
  - test/rails4_dummy/app/controllers/dummy_controller.rb
368
431
  - test/rails4_dummy/config.ru
369
432
  - test/rails4_dummy/config/application.rb
@@ -373,6 +436,7 @@ files:
373
436
  - test/rails4_dummy/config/routes.rb
374
437
  - test/rails4_dummy/config/secrets.yml
375
438
  - test/rails4_dummy/tmp/.keep
439
+ - test/rails5_dummy/Rakefile
376
440
  - test/rails5_dummy/app/controllers/dummy_controller.rb
377
441
  - test/rails5_dummy/config.ru
378
442
  - test/rails5_dummy/config/application.rb
@@ -404,9 +468,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
404
468
  version: '0'
405
469
  required_rubygems_version: !ruby/object:Gem::Requirement
406
470
  requirements:
407
- - - ">="
471
+ - - ">"
408
472
  - !ruby/object:Gem::Version
409
- version: '0'
473
+ version: 1.3.1
410
474
  requirements: []
411
475
  rubyforge_project:
412
476
  rubygems_version: 2.7.8
@@ -427,9 +491,10 @@ test_files:
427
491
  - test/coverband/collectors/delta_test.rb
428
492
  - test/coverband/configuration_test.rb
429
493
  - test/coverband/coverband_test.rb
494
+ - test/coverband/integrations/background_middleware_test.rb
430
495
  - test/coverband/integrations/background_test.rb
431
- - test/coverband/integrations/middleware_test.rb
432
496
  - test/coverband/integrations/rack_server_check_test.rb
497
+ - test/coverband/integrations/report_middleware_test.rb
433
498
  - test/coverband/integrations/resque_worker_test.rb
434
499
  - test/coverband/integrations/test_resque_job.rb
435
500
  - test/coverband/reporters/base_test.rb
@@ -439,8 +504,10 @@ test_files:
439
504
  - test/coverband/utils/file_groups_test.rb
440
505
  - test/coverband/utils/file_list_test.rb
441
506
  - test/coverband/utils/gem_list_test.rb
507
+ - test/coverband/utils/html_formatter_test.rb
442
508
  - test/coverband/utils/lines_classifier_test.rb
443
509
  - test/coverband/utils/result_test.rb
510
+ - test/coverband/utils/results_test.rb
444
511
  - test/coverband/utils/s3_report_test.rb
445
512
  - test/coverband/utils/source_file_line_test.rb
446
513
  - test/coverband/utils/source_file_test.rb
@@ -453,8 +520,10 @@ test_files:
453
520
  - test/fixtures/skipped.rb
454
521
  - test/fixtures/skipped_and_executed.rb
455
522
  - test/fixtures/utf-8.rb
523
+ - test/forked/rails_full_stack_test.rb
524
+ - test/forked/rails_rake_full_stack_test.rb
456
525
  - test/integration/full_stack_test.rb
457
- - test/integration/rails_full_stack_test.rb
526
+ - test/rails4_dummy/Rakefile
458
527
  - test/rails4_dummy/app/controllers/dummy_controller.rb
459
528
  - test/rails4_dummy/config.ru
460
529
  - test/rails4_dummy/config/application.rb
@@ -464,6 +533,7 @@ test_files:
464
533
  - test/rails4_dummy/config/routes.rb
465
534
  - test/rails4_dummy/config/secrets.yml
466
535
  - test/rails4_dummy/tmp/.keep
536
+ - test/rails5_dummy/Rakefile
467
537
  - test/rails5_dummy/app/controllers/dummy_controller.rb
468
538
  - test/rails5_dummy/config.ru
469
539
  - test/rails5_dummy/config/application.rb