coverband 4.1.0 → 4.2.0

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.
Files changed (77) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +6 -1
  3. data/.travis.yml +4 -2
  4. data/README.md +74 -51
  5. data/Rakefile +1 -1
  6. data/changes.md +45 -25
  7. data/coverband.gemspec +4 -0
  8. data/lib/coverband/adapters/base.rb +24 -1
  9. data/lib/coverband/adapters/redis_store.rb +29 -8
  10. data/lib/coverband/at_exit.rb +19 -2
  11. data/lib/coverband/collectors/coverage.rb +35 -73
  12. data/lib/coverband/collectors/delta.rb +67 -0
  13. data/lib/coverband/integrations/background.rb +4 -3
  14. data/lib/coverband/integrations/rack_server_check.rb +4 -1
  15. data/lib/coverband/integrations/resque.rb +4 -1
  16. data/lib/coverband/reporters/base.rb +21 -14
  17. data/lib/coverband/reporters/html_report.rb +40 -15
  18. data/lib/coverband/reporters/web.rb +29 -6
  19. data/lib/coverband/utils/html_formatter.rb +20 -4
  20. data/lib/coverband/utils/railtie.rb +8 -0
  21. data/lib/coverband/utils/result.rb +3 -2
  22. data/lib/coverband/utils/results.rb +63 -0
  23. data/lib/coverband/utils/source_file.rb +5 -0
  24. data/lib/coverband/version.rb +1 -1
  25. data/lib/coverband.rb +23 -3
  26. data/public/application.css +5 -0
  27. data/public/application.js +108 -1644
  28. data/public/dependencies.js +1581 -0
  29. data/public/favicon.png +0 -0
  30. data/test/benchmarks/benchmark.rake +31 -0
  31. data/test/benchmarks/coverage_fork.sh +37 -0
  32. data/test/{unit/adapters_base_test.rb → coverband/adapters/base_test.rb} +1 -1
  33. data/test/{unit/adapters_file_store_test.rb → coverband/adapters/file_store_test.rb} +1 -1
  34. data/test/{unit/adapters_redis_store_test.rb → coverband/adapters/redis_store_test.rb} +27 -10
  35. data/test/coverband/collectors/coverage_test.rb +73 -0
  36. data/test/coverband/collectors/delta_test.rb +52 -0
  37. data/test/{unit → coverband}/coverband_test.rb +7 -0
  38. data/test/coverband/integrations/background_test.rb +31 -0
  39. data/test/{unit → coverband/integrations}/middleware_test.rb +2 -1
  40. data/test/{unit/rack_server_checkout_test.rb → coverband/integrations/rack_server_check_test.rb} +1 -1
  41. data/test/{unit → coverband/integrations}/resque_worker_test.rb +9 -3
  42. data/test/{unit/reports_base_test.rb → coverband/reporters/base_test.rb} +5 -5
  43. data/test/{unit/reports_console_test.rb → coverband/reporters/console_test.rb} +2 -2
  44. data/test/{unit/reports_html_test.rb → coverband/reporters/html_test.rb} +7 -8
  45. data/test/{unit/reports_web_test.rb → coverband/reporters/web_test.rb} +2 -2
  46. data/test/{unit → integration}/full_stack_test.rb +10 -8
  47. data/test/{unit → integration}/rails_full_stack_test.rb +23 -4
  48. data/test/rails4_dummy/config/application.rb +1 -1
  49. data/test/rails4_dummy/config/coverband.rb +4 -1
  50. data/test/rails4_dummy/tmp/.keep +0 -0
  51. data/test/rails5_dummy/config/application.rb +1 -1
  52. data/test/rails5_dummy/config/coverband.rb +3 -1
  53. data/test/rails5_dummy/tmp/.keep +0 -0
  54. data/test/rails_test_helper.rb +13 -8
  55. data/test/test_helper.rb +9 -13
  56. data/test/unique_files.rb +23 -0
  57. data/views/file_list.erb +9 -0
  58. data/views/gem_list.erb +1 -1
  59. data/views/layout.erb +4 -3
  60. data/views/source_file.erb +16 -4
  61. data/views/source_file_loader.erb +7 -0
  62. metadata +100 -59
  63. data/test/unit/background_test.rb +0 -28
  64. data/test/unit/collectors_coverage_test.rb +0 -53
  65. data/test/unit/rails_gems_full_stack_test.rb +0 -36
  66. /data/test/{unit → coverband}/at_exit_test.rb +0 -0
  67. /data/test/{unit → coverband}/configuration_test.rb +0 -0
  68. /data/test/{unit → coverband/integrations}/test_resque_job.rb +0 -0
  69. /data/test/{unit → coverband}/utils/file_groups_test.rb +0 -0
  70. /data/test/{unit → coverband}/utils/file_list_test.rb +0 -0
  71. /data/test/{unit → coverband}/utils/gem_list_test.rb +0 -0
  72. /data/test/{unit → coverband}/utils/lines_classifier_test.rb +0 -0
  73. /data/test/{unit → coverband}/utils/result_test.rb +0 -0
  74. /data/test/{unit → coverband}/utils/s3_report_test.rb +0 -0
  75. /data/test/{unit → coverband}/utils/source_file_line_test.rb +0 -0
  76. /data/test/{unit → coverband}/utils/source_file_test.rb +0 -0
  77. /data/test/{unit/dog.rb → dog.rb} +0 -0
data/lib/coverband.rb CHANGED
@@ -3,7 +3,6 @@
3
3
  require 'logger'
4
4
  require 'json'
5
5
  require 'redis'
6
-
7
6
  require 'coverband/version'
8
7
  require 'coverband/at_exit'
9
8
  require 'coverband/configuration'
@@ -19,7 +18,7 @@ require 'coverband/utils/gem_list'
19
18
  require 'coverband/utils/source_file'
20
19
  require 'coverband/utils/file_groups'
21
20
  require 'coverband/utils/lines_classifier'
22
- require 'coverband/utils/railtie' if defined? ::Rails::Railtie
21
+ require 'coverband/utils/results'
23
22
  require 'coverband/collectors/coverage'
24
23
  require 'coverband/reporters/base'
25
24
  require 'coverband/reporters/html_report'
@@ -29,10 +28,14 @@ require 'coverband/integrations/rack_server_check'
29
28
  require 'coverband/reporters/web'
30
29
  require 'coverband/integrations/middleware'
31
30
  require 'coverband/integrations/background'
32
- require 'coverband/integrations/resque' if defined? Resque
33
31
 
34
32
  module Coverband
35
33
  CONFIG_FILE = './config/coverband.rb'
34
+ RUNTIME_TYPE = nil
35
+ EAGER_TYPE = :eager_loading
36
+ MERGED_TYPE = :merged
37
+ TYPES = [RUNTIME_TYPE, EAGER_TYPE]
38
+ ALL_TYPES = TYPES + [:merged]
36
39
 
37
40
  class << self
38
41
  attr_accessor :configuration_data
@@ -48,6 +51,7 @@ module Coverband
48
51
  else
49
52
  configuration.logger&.debug('using default configuration')
50
53
  end
54
+ coverage.reset_instance
51
55
  end
52
56
 
53
57
  def self.report_coverage(force_report = false)
@@ -60,14 +64,30 @@ module Coverband
60
64
 
61
65
  def self.start
62
66
  Coverband::Collectors::Coverage.instance
67
+ # TODO Railtie sets up at_exit after forks, via middleware, perhaps this hsould be
68
+ # added if not rails or if rails but not rackserverrunning
63
69
  AtExit.register
64
70
  Background.start if configuration.background_reporting_enabled && !RackServerCheck.running?
65
71
  end
66
72
 
73
+ def self.eager_loading_coverage!
74
+ coverage.eager_loading!
75
+ end
76
+
77
+ def self.runtime_coverage!
78
+ coverage.runtime!
79
+ end
80
+
81
+ def self.coverage
82
+ Coverband::Collectors::Coverage.instance
83
+ end
84
+
67
85
  unless ENV['COVERBAND_DISABLE_AUTO_START']
68
86
  # Coverband should be setup as early as possible
69
87
  # to capture usage of things loaded by initializers or other Rails engines
70
88
  configure
71
89
  start
90
+ require 'coverband/utils/railtie' if defined? ::Rails::Railtie
91
+ require 'coverband/integrations/resque' if defined? Resque
72
92
  end
73
93
  end
@@ -748,6 +748,11 @@ td {
748
748
  text-align: center;
749
749
  border-radius: 6px; }
750
750
 
751
+ .loader {
752
+ text-align: center;
753
+ }
754
+
755
+
751
756
  #header {
752
757
  color: #FFF;
753
758
  font-size: 12px;