coverband 4.2.0 → 4.2.2
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/.rubocop.yml +29 -9
- data/.travis.yml +10 -8
- data/CODE_OF_CONDUCT.md +76 -0
- data/Gemfile +3 -1
- data/Gemfile.rails4 +1 -0
- data/README.md +72 -43
- data/Rakefile +14 -3
- data/changes.md +66 -11
- data/coverband.gemspec +2 -5
- data/lib/coverband/adapters/base.rb +64 -45
- data/lib/coverband/adapters/file_store.rb +15 -9
- data/lib/coverband/adapters/hash_redis_store.rb +182 -0
- data/lib/coverband/adapters/redis_store.rb +33 -11
- data/lib/coverband/at_exit.rb +2 -11
- data/lib/coverband/collectors/coverage.rb +34 -40
- data/lib/coverband/collectors/delta.rb +34 -28
- data/lib/coverband/collectors/view_tracker.rb +124 -0
- data/lib/coverband/configuration.rb +96 -32
- data/lib/coverband/integrations/background.rb +9 -4
- data/lib/coverband/integrations/{middleware.rb → background_middleware.rb} +2 -6
- data/lib/coverband/integrations/bundler.rb +8 -0
- data/lib/coverband/integrations/report_middleware.rb +15 -0
- data/lib/coverband/integrations/resque.rb +3 -5
- data/lib/coverband/reporters/base.rb +40 -16
- data/lib/coverband/reporters/console_report.rb +1 -0
- data/lib/coverband/reporters/html_report.rb +21 -27
- data/lib/coverband/reporters/web.rb +19 -21
- data/lib/coverband/utils/absolute_file_converter.rb +47 -0
- data/lib/coverband/utils/file_hasher.rb +16 -0
- data/lib/coverband/utils/file_list.rb +16 -5
- data/lib/coverband/utils/html_formatter.rb +37 -8
- data/lib/coverband/utils/lines_classifier.rb +5 -0
- data/lib/coverband/utils/railtie.rb +20 -9
- data/lib/coverband/utils/relative_file_converter.rb +41 -0
- data/lib/coverband/utils/result.rb +1 -37
- data/lib/coverband/utils/results.rb +51 -0
- data/lib/coverband/utils/s3_report.rb +2 -2
- data/lib/coverband/utils/source_file.rb +31 -8
- data/lib/coverband/utils/tasks.rb +10 -10
- data/lib/coverband/version.rb +5 -1
- data/lib/coverband.rb +39 -22
- data/public/application.css +6 -6
- data/public/application.js +27 -0
- data/test/benchmarks/benchmark.rake +167 -73
- data/test/benchmarks/init_rails.rake +10 -0
- data/test/coverband/adapters/base_test.rb +73 -42
- data/test/coverband/adapters/file_store_test.rb +48 -37
- data/test/coverband/adapters/hash_redis_store_test.rb +190 -0
- data/test/coverband/adapters/redis_store_test.rb +92 -59
- data/test/coverband/at_exit_test.rb +0 -2
- data/test/coverband/collectors/coverage_test.rb +62 -10
- data/test/coverband/collectors/delta_test.rb +36 -6
- data/test/coverband/collectors/view_tracker_test.rb +77 -0
- data/test/coverband/configuration_test.rb +47 -7
- data/test/coverband/coverband_test.rb +14 -2
- data/test/coverband/integrations/background_middleware_test.rb +44 -0
- data/test/coverband/integrations/background_test.rb +1 -3
- data/test/coverband/integrations/report_middleware_test.rb +44 -0
- data/test/coverband/integrations/resque_worker_test.rb +6 -6
- data/test/coverband/integrations/test_resque_job.rb +3 -1
- data/test/coverband/reporters/base_test.rb +2 -79
- data/test/coverband/reporters/console_test.rb +2 -6
- data/test/coverband/reporters/html_test.rb +58 -19
- data/test/coverband/reporters/web_test.rb +0 -10
- data/test/coverband/utils/absolute_file_converter_test.rb +56 -0
- data/test/coverband/utils/file_groups_test.rb +11 -5
- data/test/coverband/utils/file_hasher_test.rb +29 -0
- data/test/coverband/utils/file_list_test.rb +5 -5
- data/test/coverband/utils/html_formatter_test.rb +43 -0
- data/test/coverband/utils/relative_file_converter_test.rb +39 -0
- data/test/coverband/utils/result_test.rb +6 -47
- data/test/coverband/utils/results_test.rb +54 -0
- data/test/coverband/utils/s3_report_test.rb +2 -0
- data/test/coverband/utils/source_file_test.rb +50 -0
- data/test/dog.rb.erb +12 -0
- data/test/forked/rails_full_stack_test.rb +106 -0
- data/test/forked/rails_rake_full_stack_test.rb +48 -0
- data/test/integration/full_stack_test.rb +17 -16
- data/test/rails4_dummy/Rakefile +6 -0
- data/test/rails4_dummy/config/application.rb +8 -9
- data/test/rails4_dummy/config/coverband.rb +5 -3
- data/test/rails5_dummy/Rakefile +6 -0
- data/test/rails5_dummy/config/application.rb +6 -10
- data/test/rails5_dummy/config/coverband.rb +4 -2
- data/test/rails_test_helper.rb +22 -5
- data/test/test_helper.rb +45 -8
- data/test/unique_files.rb +17 -9
- data/views/file_list.erb +2 -2
- data/views/gem_list.erb +10 -1
- data/views/layout.erb +6 -18
- data/views/nav.erb +35 -0
- data/views/source_file.erb +13 -4
- data/views/source_file_loader.erb +1 -1
- data/views/view_tracker.erb +37 -0
- metadata +59 -25
- data/lib/coverband/utils/file_path_helper.rb +0 -57
- data/test/coverband/integrations/middleware_test.rb +0 -96
- data/test/integration/rails_full_stack_test.rb +0 -95
data/test/test_helper.rb
CHANGED
|
@@ -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,30 @@ require 'pry-byebug'
|
|
|
19
19
|
require_relative 'unique_files'
|
|
20
20
|
$VERBOSE = original_verbosity
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
unless ENV['ONESHOT'] || ENV['SIMULATE_ONESHOT']
|
|
23
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
|
24
|
+
SimpleCov.start do
|
|
25
|
+
add_filter 'test/forked'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Coveralls.wear!
|
|
29
|
+
end
|
|
23
30
|
|
|
24
31
|
module Coverband
|
|
25
32
|
module Test
|
|
26
33
|
def self.reset
|
|
27
|
-
|
|
34
|
+
Coverband.configuration.redis_namespace = 'coverband_test'
|
|
35
|
+
Coverband.configuration.store.instance_variable_set(:@redis_namespace, 'coverband_test')
|
|
36
|
+
Coverband.configuration.store.class.class_variable_set(:@@path_cache, {})
|
|
37
|
+
%i[eager_loading runtime].each do |type|
|
|
28
38
|
Coverband.configuration.store.type = type
|
|
29
39
|
Coverband.configuration.store.clear!
|
|
30
40
|
end
|
|
31
41
|
Coverband.configuration.reset
|
|
32
42
|
Coverband::Collectors::Coverage.instance.reset_instance
|
|
43
|
+
Coverband::Utils::RelativeFileConverter.reset
|
|
44
|
+
Coverband::Utils::AbsoluteFileConverter.reset
|
|
45
|
+
Coverband.configuration.redis_namespace = 'coverband_test'
|
|
33
46
|
Coverband::Background.stop
|
|
34
47
|
end
|
|
35
48
|
|
|
@@ -60,6 +73,7 @@ def test(name, &block)
|
|
|
60
73
|
false
|
|
61
74
|
end
|
|
62
75
|
raise "#{test_name} is already defined in #{self}" if defined
|
|
76
|
+
|
|
63
77
|
if block_given?
|
|
64
78
|
define_method(test_name, &block)
|
|
65
79
|
else
|
|
@@ -69,10 +83,8 @@ def test(name, &block)
|
|
|
69
83
|
end
|
|
70
84
|
end
|
|
71
85
|
|
|
72
|
-
def mock_file_hash
|
|
73
|
-
|
|
74
|
-
mock_file.expects(:hexdigest).at_least_once.returns('abcd')
|
|
75
|
-
Digest::MD5.expects(:file).at_least_once.returns(mock_file)
|
|
86
|
+
def mock_file_hash(hash: 'abcd')
|
|
87
|
+
Coverband::Utils::FileHasher.expects(:hash).at_least_once.returns(hash)
|
|
76
88
|
end
|
|
77
89
|
|
|
78
90
|
def example_line
|
|
@@ -83,16 +95,41 @@ def basic_coverage
|
|
|
83
95
|
{ 'app_path/dog.rb' => example_line }
|
|
84
96
|
end
|
|
85
97
|
|
|
98
|
+
def basic_coverage_full_path
|
|
99
|
+
{ basic_coverage_file_full_path => example_line }
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def basic_source_fixture_coverage
|
|
103
|
+
{ source_fixture('sample.rb') => example_line }
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def basic_coverage_file_full_path
|
|
107
|
+
"#{test_root}/dog.rb"
|
|
108
|
+
end
|
|
109
|
+
|
|
86
110
|
def source_fixture(filename)
|
|
87
111
|
File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', filename))
|
|
88
112
|
end
|
|
89
113
|
|
|
114
|
+
def fixtures_root
|
|
115
|
+
File.expand_path(File.join(File.dirname(__FILE__), 'fixtures'))
|
|
116
|
+
end
|
|
117
|
+
|
|
90
118
|
def test_root
|
|
91
119
|
File.expand_path(File.join(File.dirname(__FILE__)))
|
|
92
120
|
end
|
|
93
121
|
|
|
122
|
+
###
|
|
123
|
+
# This handles an issue where the store is setup in tests prior to being able to set the namespace
|
|
124
|
+
###
|
|
94
125
|
def store
|
|
95
|
-
Coverband.configuration.store
|
|
126
|
+
if Coverband.configuration.store.redis_namespace == 'coverband_test'
|
|
127
|
+
Coverband.configuration.store
|
|
128
|
+
else
|
|
129
|
+
Coverband.configuration.redis_namespace = 'coverband_test'
|
|
130
|
+
Coverband.configuration.instance_variable_set(:@store, nil)
|
|
131
|
+
Coverband.configuration.store
|
|
132
|
+
end
|
|
96
133
|
end
|
|
97
134
|
|
|
98
135
|
# Taken from http://stackoverflow.com/questions/4459330/how-do-i-temporarily-redirect-stderr-in-ruby
|
data/test/unique_files.rb
CHANGED
|
@@ -2,22 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
require 'securerandom'
|
|
4
4
|
require 'fileutils'
|
|
5
|
+
require 'erb'
|
|
6
|
+
require 'ostruct'
|
|
5
7
|
|
|
6
|
-
UNIQUE_FILES_DIR =
|
|
8
|
+
UNIQUE_FILES_DIR = './test/unique_files'
|
|
7
9
|
|
|
8
|
-
def require_unique_file(file = 'dog.rb')
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
def require_unique_file(file = 'dog.rb', variables = {})
|
|
11
|
+
uuid = SecureRandom.uuid
|
|
12
|
+
dir = "#{UNIQUE_FILES_DIR}/#{uuid}"
|
|
13
|
+
file_name = file.sub('.erb', '')
|
|
14
|
+
temp_file = "#{dir}/#{file_name}"
|
|
15
|
+
FileUtils.mkdir_p(Pathname.new(temp_file).dirname.to_s)
|
|
16
|
+
file_contents = File.read("./test/#{file}")
|
|
17
|
+
file_contents = ERB.new(file_contents).result(OpenStruct.new(variables).instance_eval { binding }) if variables.any?
|
|
18
|
+
File.open(temp_file, 'w') { |w| w.write(file_contents) }
|
|
13
19
|
require temp_file
|
|
14
|
-
temp_file
|
|
20
|
+
Coverband::Utils::RelativeFileConverter.convert(File.expand_path(temp_file))
|
|
15
21
|
end
|
|
16
22
|
|
|
17
23
|
def remove_unique_files
|
|
18
24
|
FileUtils.rm_r(UNIQUE_FILES_DIR) if File.exist?(UNIQUE_FILES_DIR)
|
|
19
25
|
end
|
|
20
26
|
|
|
21
|
-
Minitest
|
|
22
|
-
|
|
27
|
+
if defined?(Minitest)
|
|
28
|
+
Minitest.after_run do
|
|
29
|
+
remove_unique_files
|
|
30
|
+
end
|
|
23
31
|
end
|
data/views/file_list.erb
CHANGED
|
@@ -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.
|
|
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)
|
|
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>
|
data/views/gem_list.erb
CHANGED
|
@@ -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>
|
data/views/layout.erb
CHANGED
|
@@ -15,23 +15,7 @@
|
|
|
15
15
|
<img src="<%= assets_path('loading.gif') %>" alt="loading"/>
|
|
16
16
|
</div>
|
|
17
17
|
<div id="wrapper" style="display:none;">
|
|
18
|
-
|
|
19
|
-
<a href='<%= base_path %>'>Coverband Admin</a>
|
|
20
|
-
<a href='<%= base_path %>settings'>Info</a>
|
|
21
|
-
<%= button("#{base_path}collect_coverage", 'force coverage collection') %>
|
|
22
|
-
<%= button("#{base_path}reload_files", 'reload Coverband files') %>
|
|
23
|
-
<% if Coverband.configuration.web_enable_clear %>
|
|
24
|
-
<%= button("#{base_path}clear", 'clear coverage report', delete: true) %>
|
|
25
|
-
<% end %>
|
|
26
|
-
<% if Coverband.configuration.web_debug %>
|
|
27
|
-
<a href='<%= base_path %>debug_data'>Debug Data</a>
|
|
28
|
-
<% end %>
|
|
29
|
-
</div>
|
|
30
|
-
<% if notice.to_s.length > 0 %>
|
|
31
|
-
<div class="notice"><%= notice %></div>
|
|
32
|
-
<% end %>
|
|
33
|
-
<div class="timestamp">Generated <%= timeago(Time.now) %></div>
|
|
34
|
-
<ul class="group_tabs"></ul>
|
|
18
|
+
<%= display_nav %>
|
|
35
19
|
|
|
36
20
|
<div id="content">
|
|
37
21
|
<%= formatted_file_list("All Files", result, result.source_files) unless view_gems? %>
|
|
@@ -48,7 +32,11 @@
|
|
|
48
32
|
<div class="source_files">
|
|
49
33
|
<% result.source_files.each do |source_file| %>
|
|
50
34
|
<% if (!source_file.gem? || (view_gems? && gem_details? && source_file.gem? )) %>
|
|
51
|
-
|
|
35
|
+
<% if static_html? %>
|
|
36
|
+
<%= formatted_source_file(result, source_file) %>
|
|
37
|
+
<% else %>
|
|
38
|
+
<%= formatted_source_file_loader(result, source_file) %>
|
|
39
|
+
<% end %>
|
|
52
40
|
<% end %>
|
|
53
41
|
<% end %>
|
|
54
42
|
</div>
|
data/views/nav.erb
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
|
|
2
|
+
<div id="header">
|
|
3
|
+
<a href='<%= base_path %>'>Coverband Admin</a>
|
|
4
|
+
<a href='<%= base_path %>settings'>Info</a>
|
|
5
|
+
<% if Coverband.configuration.web_enable_clear %>
|
|
6
|
+
<%= button("#{base_path}clear", 'clear coverage report', delete: true) %>
|
|
7
|
+
<% end %>
|
|
8
|
+
<% if Coverband.configuration.web_debug %>
|
|
9
|
+
<a href='<%= base_path %>debug_data'>Debug Data</a>
|
|
10
|
+
<% end %>
|
|
11
|
+
</div>
|
|
12
|
+
<% if notice.to_s.length > 0 %>
|
|
13
|
+
<div class="notice"><%= notice %></div>
|
|
14
|
+
<% end %>
|
|
15
|
+
<div class="timestamp">Generated <%= timeago(Time.now) %></div>
|
|
16
|
+
<br/>
|
|
17
|
+
<% if defined?(result) %>
|
|
18
|
+
<div class="timestamp">
|
|
19
|
+
Coverage Recording Started: <%= timeago(result.source_files.first_seen_at) %>
|
|
20
|
+
</div>
|
|
21
|
+
<% end %>
|
|
22
|
+
|
|
23
|
+
<ul class="group_tabs">
|
|
24
|
+
</ul>
|
|
25
|
+
|
|
26
|
+
<ul class="extra_tabs">
|
|
27
|
+
<% if nav_options[:show_coverage_link] %>
|
|
28
|
+
<li><a href='<%= base_path %>'>Coverage</a></li>
|
|
29
|
+
<% end %>
|
|
30
|
+
<% if Coverband.configuration.track_views %>
|
|
31
|
+
<li class='<%= nav_options[:show_coverage_link] ? 'active' : '' %>'>
|
|
32
|
+
<a href='<%= base_path %>view_tracker'>Views Tracker</a>
|
|
33
|
+
</li>
|
|
34
|
+
<% end %>
|
|
35
|
+
</ul>
|
data/views/source_file.erb
CHANGED
|
@@ -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) %>"
|
|
6
|
-
|
|
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') %>
|
|
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)
|
|
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)
|
|
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>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html xmlns='http://www.w3.org/1999/xhtml'>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Coverband Info: <%= Coverband::VERSION %></title>
|
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
6
|
+
<script src='<%= assets_path('application.js') %>' type='text/javascript'></script>
|
|
7
|
+
<link href='<%= assets_path('application.css') %>' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
|
8
|
+
<link rel="icon" type="image/png" href="<%= assets_path('favicon.png') %>" />
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body>
|
|
12
|
+
<div id="wrapper" style="">
|
|
13
|
+
<%= display_nav(show_coverage_link: true) %>
|
|
14
|
+
<div id="content">
|
|
15
|
+
<% tracker = Coverband::Collectors::ViewTracker.new(store: Coverband.configuration.store) %>
|
|
16
|
+
<h2>Unused Views: (<%= tracker.unused_views.length %>)</h2>
|
|
17
|
+
<p>These views have never been rendered</p>
|
|
18
|
+
<ul>
|
|
19
|
+
<% tracker.unused_views.each do |view_file| %>
|
|
20
|
+
<li><%= view_file %></li>
|
|
21
|
+
<% end %>
|
|
22
|
+
</ul>
|
|
23
|
+
|
|
24
|
+
<h2>Used Views: (<%= tracker.used_views.length %>)</h2>
|
|
25
|
+
<p>These views have been rendered at least once</p>
|
|
26
|
+
<ul>
|
|
27
|
+
<% tracker.used_views.each do |view_file| %>
|
|
28
|
+
<li><%= view_file %></li>
|
|
29
|
+
<% end %>
|
|
30
|
+
</ul>
|
|
31
|
+
</div>
|
|
32
|
+
<div id="footer">
|
|
33
|
+
Generated by <a href="http://github.com/danmayer/coverband">Coverband</a> v<%= Coverband::VERSION %>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</body>
|
|
37
|
+
</html>
|
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.
|
|
4
|
+
version: 4.2.2
|
|
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-
|
|
12
|
+
date: 2019-08-20 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: aws-sdk-s3
|
|
@@ -96,35 +96,35 @@ dependencies:
|
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
97
|
version: '0'
|
|
98
98
|
- !ruby/object:Gem::Dependency
|
|
99
|
-
name:
|
|
99
|
+
name: minitest-fork_executor
|
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
|
101
101
|
requirements:
|
|
102
|
-
- - "
|
|
102
|
+
- - ">="
|
|
103
103
|
- !ruby/object:Gem::Version
|
|
104
|
-
version:
|
|
104
|
+
version: '0'
|
|
105
105
|
type: :development
|
|
106
106
|
prerelease: false
|
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
|
108
108
|
requirements:
|
|
109
|
-
- - "
|
|
109
|
+
- - ">="
|
|
110
110
|
- !ruby/object:Gem::Version
|
|
111
|
-
version:
|
|
111
|
+
version: '0'
|
|
112
112
|
- !ruby/object:Gem::Dependency
|
|
113
|
-
name:
|
|
113
|
+
name: mocha
|
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
|
115
115
|
requirements:
|
|
116
|
-
- - "
|
|
116
|
+
- - "~>"
|
|
117
117
|
- !ruby/object:Gem::Version
|
|
118
|
-
version:
|
|
118
|
+
version: 1.7.0
|
|
119
119
|
type: :development
|
|
120
120
|
prerelease: false
|
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
|
122
122
|
requirements:
|
|
123
|
-
- - "
|
|
123
|
+
- - "~>"
|
|
124
124
|
- !ruby/object:Gem::Version
|
|
125
|
-
version:
|
|
125
|
+
version: 1.7.0
|
|
126
126
|
- !ruby/object:Gem::Dependency
|
|
127
|
-
name: rack
|
|
127
|
+
name: rack
|
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
|
129
129
|
requirements:
|
|
130
130
|
- - ">="
|
|
@@ -138,7 +138,7 @@ dependencies:
|
|
|
138
138
|
- !ruby/object:Gem::Version
|
|
139
139
|
version: '0'
|
|
140
140
|
- !ruby/object:Gem::Dependency
|
|
141
|
-
name:
|
|
141
|
+
name: rack-test
|
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
|
143
143
|
requirements:
|
|
144
144
|
- - ">="
|
|
@@ -152,7 +152,7 @@ dependencies:
|
|
|
152
152
|
- !ruby/object:Gem::Version
|
|
153
153
|
version: '0'
|
|
154
154
|
- !ruby/object:Gem::Dependency
|
|
155
|
-
name:
|
|
155
|
+
name: rake
|
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
|
157
157
|
requirements:
|
|
158
158
|
- - ">="
|
|
@@ -166,7 +166,7 @@ dependencies:
|
|
|
166
166
|
- !ruby/object:Gem::Version
|
|
167
167
|
version: '0'
|
|
168
168
|
- !ruby/object:Gem::Dependency
|
|
169
|
-
name:
|
|
169
|
+
name: resque
|
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
|
171
171
|
requirements:
|
|
172
172
|
- - ">="
|
|
@@ -180,7 +180,7 @@ dependencies:
|
|
|
180
180
|
- !ruby/object:Gem::Version
|
|
181
181
|
version: '0'
|
|
182
182
|
- !ruby/object:Gem::Dependency
|
|
183
|
-
name:
|
|
183
|
+
name: rubocop
|
|
184
184
|
requirement: !ruby/object:Gem::Requirement
|
|
185
185
|
requirements:
|
|
186
186
|
- - ">="
|
|
@@ -259,6 +259,7 @@ files:
|
|
|
259
259
|
- ".gitignore"
|
|
260
260
|
- ".rubocop.yml"
|
|
261
261
|
- ".travis.yml"
|
|
262
|
+
- CODE_OF_CONDUCT.md
|
|
262
263
|
- Gemfile
|
|
263
264
|
- Gemfile.rails4
|
|
264
265
|
- LICENSE
|
|
@@ -271,26 +272,32 @@ files:
|
|
|
271
272
|
- lib/coverband.rb
|
|
272
273
|
- lib/coverband/adapters/base.rb
|
|
273
274
|
- lib/coverband/adapters/file_store.rb
|
|
275
|
+
- lib/coverband/adapters/hash_redis_store.rb
|
|
274
276
|
- lib/coverband/adapters/redis_store.rb
|
|
275
277
|
- lib/coverband/at_exit.rb
|
|
276
278
|
- lib/coverband/collectors/coverage.rb
|
|
277
279
|
- lib/coverband/collectors/delta.rb
|
|
280
|
+
- lib/coverband/collectors/view_tracker.rb
|
|
278
281
|
- lib/coverband/configuration.rb
|
|
279
282
|
- lib/coverband/integrations/background.rb
|
|
280
|
-
- lib/coverband/integrations/
|
|
283
|
+
- lib/coverband/integrations/background_middleware.rb
|
|
284
|
+
- lib/coverband/integrations/bundler.rb
|
|
281
285
|
- lib/coverband/integrations/rack_server_check.rb
|
|
286
|
+
- lib/coverband/integrations/report_middleware.rb
|
|
282
287
|
- lib/coverband/integrations/resque.rb
|
|
283
288
|
- lib/coverband/reporters/base.rb
|
|
284
289
|
- lib/coverband/reporters/console_report.rb
|
|
285
290
|
- lib/coverband/reporters/html_report.rb
|
|
286
291
|
- lib/coverband/reporters/web.rb
|
|
292
|
+
- lib/coverband/utils/absolute_file_converter.rb
|
|
287
293
|
- lib/coverband/utils/file_groups.rb
|
|
294
|
+
- lib/coverband/utils/file_hasher.rb
|
|
288
295
|
- lib/coverband/utils/file_list.rb
|
|
289
|
-
- lib/coverband/utils/file_path_helper.rb
|
|
290
296
|
- lib/coverband/utils/gem_list.rb
|
|
291
297
|
- lib/coverband/utils/html_formatter.rb
|
|
292
298
|
- lib/coverband/utils/lines_classifier.rb
|
|
293
299
|
- lib/coverband/utils/railtie.rb
|
|
300
|
+
- lib/coverband/utils/relative_file_converter.rb
|
|
294
301
|
- lib/coverband/utils/result.rb
|
|
295
302
|
- lib/coverband/utils/results.rb
|
|
296
303
|
- lib/coverband/utils/s3_report.rb
|
|
@@ -328,32 +335,42 @@ files:
|
|
|
328
335
|
- test/benchmarks/coverage_fork.sh
|
|
329
336
|
- test/benchmarks/dog.rb
|
|
330
337
|
- test/benchmarks/graph_bench.sh
|
|
338
|
+
- test/benchmarks/init_rails.rake
|
|
331
339
|
- test/coverband/adapters/base_test.rb
|
|
332
340
|
- test/coverband/adapters/file_store_test.rb
|
|
341
|
+
- test/coverband/adapters/hash_redis_store_test.rb
|
|
333
342
|
- test/coverband/adapters/redis_store_test.rb
|
|
334
343
|
- test/coverband/at_exit_test.rb
|
|
335
344
|
- test/coverband/collectors/coverage_test.rb
|
|
336
345
|
- test/coverband/collectors/delta_test.rb
|
|
346
|
+
- test/coverband/collectors/view_tracker_test.rb
|
|
337
347
|
- test/coverband/configuration_test.rb
|
|
338
348
|
- test/coverband/coverband_test.rb
|
|
349
|
+
- test/coverband/integrations/background_middleware_test.rb
|
|
339
350
|
- test/coverband/integrations/background_test.rb
|
|
340
|
-
- test/coverband/integrations/middleware_test.rb
|
|
341
351
|
- test/coverband/integrations/rack_server_check_test.rb
|
|
352
|
+
- test/coverband/integrations/report_middleware_test.rb
|
|
342
353
|
- test/coverband/integrations/resque_worker_test.rb
|
|
343
354
|
- test/coverband/integrations/test_resque_job.rb
|
|
344
355
|
- test/coverband/reporters/base_test.rb
|
|
345
356
|
- test/coverband/reporters/console_test.rb
|
|
346
357
|
- test/coverband/reporters/html_test.rb
|
|
347
358
|
- test/coverband/reporters/web_test.rb
|
|
359
|
+
- test/coverband/utils/absolute_file_converter_test.rb
|
|
348
360
|
- test/coverband/utils/file_groups_test.rb
|
|
361
|
+
- test/coverband/utils/file_hasher_test.rb
|
|
349
362
|
- test/coverband/utils/file_list_test.rb
|
|
350
363
|
- test/coverband/utils/gem_list_test.rb
|
|
364
|
+
- test/coverband/utils/html_formatter_test.rb
|
|
351
365
|
- test/coverband/utils/lines_classifier_test.rb
|
|
366
|
+
- test/coverband/utils/relative_file_converter_test.rb
|
|
352
367
|
- test/coverband/utils/result_test.rb
|
|
368
|
+
- test/coverband/utils/results_test.rb
|
|
353
369
|
- test/coverband/utils/s3_report_test.rb
|
|
354
370
|
- test/coverband/utils/source_file_line_test.rb
|
|
355
371
|
- test/coverband/utils/source_file_test.rb
|
|
356
372
|
- test/dog.rb
|
|
373
|
+
- test/dog.rb.erb
|
|
357
374
|
- test/fake_app/basic_rack.rb
|
|
358
375
|
- test/fixtures/app/controllers/sample_controller.rb
|
|
359
376
|
- test/fixtures/app/models/user.rb
|
|
@@ -362,8 +379,10 @@ files:
|
|
|
362
379
|
- test/fixtures/skipped.rb
|
|
363
380
|
- test/fixtures/skipped_and_executed.rb
|
|
364
381
|
- test/fixtures/utf-8.rb
|
|
382
|
+
- test/forked/rails_full_stack_test.rb
|
|
383
|
+
- test/forked/rails_rake_full_stack_test.rb
|
|
365
384
|
- test/integration/full_stack_test.rb
|
|
366
|
-
- test/
|
|
385
|
+
- test/rails4_dummy/Rakefile
|
|
367
386
|
- test/rails4_dummy/app/controllers/dummy_controller.rb
|
|
368
387
|
- test/rails4_dummy/config.ru
|
|
369
388
|
- test/rails4_dummy/config/application.rb
|
|
@@ -373,6 +392,7 @@ files:
|
|
|
373
392
|
- test/rails4_dummy/config/routes.rb
|
|
374
393
|
- test/rails4_dummy/config/secrets.yml
|
|
375
394
|
- test/rails4_dummy/tmp/.keep
|
|
395
|
+
- test/rails5_dummy/Rakefile
|
|
376
396
|
- test/rails5_dummy/app/controllers/dummy_controller.rb
|
|
377
397
|
- test/rails5_dummy/config.ru
|
|
378
398
|
- test/rails5_dummy/config/application.rb
|
|
@@ -386,9 +406,11 @@ files:
|
|
|
386
406
|
- views/file_list.erb
|
|
387
407
|
- views/gem_list.erb
|
|
388
408
|
- views/layout.erb
|
|
409
|
+
- views/nav.erb
|
|
389
410
|
- views/settings.erb
|
|
390
411
|
- views/source_file.erb
|
|
391
412
|
- views/source_file_loader.erb
|
|
413
|
+
- views/view_tracker.erb
|
|
392
414
|
homepage: https://github.com/danmayer/coverband
|
|
393
415
|
licenses:
|
|
394
416
|
- MIT
|
|
@@ -408,8 +430,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
408
430
|
- !ruby/object:Gem::Version
|
|
409
431
|
version: '0'
|
|
410
432
|
requirements: []
|
|
411
|
-
|
|
412
|
-
rubygems_version: 2.7.8
|
|
433
|
+
rubygems_version: 3.0.3
|
|
413
434
|
signing_key:
|
|
414
435
|
specification_version: 4
|
|
415
436
|
summary: Rack middleware to help measure production code usage (LOC runtime usage)
|
|
@@ -419,32 +440,42 @@ test_files:
|
|
|
419
440
|
- test/benchmarks/coverage_fork.sh
|
|
420
441
|
- test/benchmarks/dog.rb
|
|
421
442
|
- test/benchmarks/graph_bench.sh
|
|
443
|
+
- test/benchmarks/init_rails.rake
|
|
422
444
|
- test/coverband/adapters/base_test.rb
|
|
423
445
|
- test/coverband/adapters/file_store_test.rb
|
|
446
|
+
- test/coverband/adapters/hash_redis_store_test.rb
|
|
424
447
|
- test/coverband/adapters/redis_store_test.rb
|
|
425
448
|
- test/coverband/at_exit_test.rb
|
|
426
449
|
- test/coverband/collectors/coverage_test.rb
|
|
427
450
|
- test/coverband/collectors/delta_test.rb
|
|
451
|
+
- test/coverband/collectors/view_tracker_test.rb
|
|
428
452
|
- test/coverband/configuration_test.rb
|
|
429
453
|
- test/coverband/coverband_test.rb
|
|
454
|
+
- test/coverband/integrations/background_middleware_test.rb
|
|
430
455
|
- test/coverband/integrations/background_test.rb
|
|
431
|
-
- test/coverband/integrations/middleware_test.rb
|
|
432
456
|
- test/coverband/integrations/rack_server_check_test.rb
|
|
457
|
+
- test/coverband/integrations/report_middleware_test.rb
|
|
433
458
|
- test/coverband/integrations/resque_worker_test.rb
|
|
434
459
|
- test/coverband/integrations/test_resque_job.rb
|
|
435
460
|
- test/coverband/reporters/base_test.rb
|
|
436
461
|
- test/coverband/reporters/console_test.rb
|
|
437
462
|
- test/coverband/reporters/html_test.rb
|
|
438
463
|
- test/coverband/reporters/web_test.rb
|
|
464
|
+
- test/coverband/utils/absolute_file_converter_test.rb
|
|
439
465
|
- test/coverband/utils/file_groups_test.rb
|
|
466
|
+
- test/coverband/utils/file_hasher_test.rb
|
|
440
467
|
- test/coverband/utils/file_list_test.rb
|
|
441
468
|
- test/coverband/utils/gem_list_test.rb
|
|
469
|
+
- test/coverband/utils/html_formatter_test.rb
|
|
442
470
|
- test/coverband/utils/lines_classifier_test.rb
|
|
471
|
+
- test/coverband/utils/relative_file_converter_test.rb
|
|
443
472
|
- test/coverband/utils/result_test.rb
|
|
473
|
+
- test/coverband/utils/results_test.rb
|
|
444
474
|
- test/coverband/utils/s3_report_test.rb
|
|
445
475
|
- test/coverband/utils/source_file_line_test.rb
|
|
446
476
|
- test/coverband/utils/source_file_test.rb
|
|
447
477
|
- test/dog.rb
|
|
478
|
+
- test/dog.rb.erb
|
|
448
479
|
- test/fake_app/basic_rack.rb
|
|
449
480
|
- test/fixtures/app/controllers/sample_controller.rb
|
|
450
481
|
- test/fixtures/app/models/user.rb
|
|
@@ -453,8 +484,10 @@ test_files:
|
|
|
453
484
|
- test/fixtures/skipped.rb
|
|
454
485
|
- test/fixtures/skipped_and_executed.rb
|
|
455
486
|
- test/fixtures/utf-8.rb
|
|
487
|
+
- test/forked/rails_full_stack_test.rb
|
|
488
|
+
- test/forked/rails_rake_full_stack_test.rb
|
|
456
489
|
- test/integration/full_stack_test.rb
|
|
457
|
-
- test/
|
|
490
|
+
- test/rails4_dummy/Rakefile
|
|
458
491
|
- test/rails4_dummy/app/controllers/dummy_controller.rb
|
|
459
492
|
- test/rails4_dummy/config.ru
|
|
460
493
|
- test/rails4_dummy/config/application.rb
|
|
@@ -464,6 +497,7 @@ test_files:
|
|
|
464
497
|
- test/rails4_dummy/config/routes.rb
|
|
465
498
|
- test/rails4_dummy/config/secrets.yml
|
|
466
499
|
- test/rails4_dummy/tmp/.keep
|
|
500
|
+
- test/rails5_dummy/Rakefile
|
|
467
501
|
- test/rails5_dummy/app/controllers/dummy_controller.rb
|
|
468
502
|
- test/rails5_dummy/config.ru
|
|
469
503
|
- test/rails5_dummy/config/application.rb
|