parallel_coverage 0.1.0 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bca323f9f064ab1987f900f126efc03924b10c58344ee26450f1e500afba5347
4
- data.tar.gz: f9976e4d96fd315332ea2302710db8453296212b90fcd3cd9ef7232904c2bc84
3
+ metadata.gz: fc5d1cd0fa84d14a150c10599dc01ab5756b7da9ed882a7d2605e244bf40aaf4
4
+ data.tar.gz: 8a5806d245400211adc8db05357d3b4f17d696ae38a4d786a1c8c9415fc67eeb
5
5
  SHA512:
6
- metadata.gz: a255cf44d32dc47711d13d8849cf2723d1bb49830d74febb80190c1ff5099486a0e4350c38710e755162225bb717d5c8364cc0edeebf2491da1df20819758fce
7
- data.tar.gz: fed394584759cb564be64eb19327298e1f20bfb38300a833b492bc7ade72a9c53c566fc5d120940d5f65f23eba03debe1f8af6624df8c8ead30526ab8fba4f8a
6
+ metadata.gz: f3b33c3dd152355c254b0d6065bc98b0944ea71b9e5fe5fb211cfcc54afe98cc905343bda7a8f5e70da291e44ec7f107a936784a6ed34e1ecbf1480b8088c56f
7
+ data.tar.gz: e142a278a4e47029f0337f18333079703f40e3d484ecfa730e020a48dc95a5603ac59e1fa52daa04413e86a4b260cef46521ed2a9bc5c81816f01e9df91e3e80
data/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # Parallel Coverage
2
+ Rails engine that gets SimpleCov up and running for you in a parallelized test suite.
3
+
4
+ This gem sets an initializer to run the coverage measurement instead of running it directly at the beginning of the tests themselves, so it is more suitable for a fully featured tests suite (i.e. with integration tests) rather than unit tests only.
5
+
6
+ ## Installation
7
+ Add this lines to your application's Gemfile:
8
+ ```ruby
9
+ group :test do
10
+ gem 'parallel_coverage'
11
+ end
12
+ ```
13
+
14
+ ## Usage
15
+ Run your tests through CLI with the `COVERAGE` environment variable set to true:
16
+ ```
17
+ COVERAGE=true bin/rails test:system test
18
+ ```
19
+
20
+ The default SimpleCov config passed to the `SimpleCov.start 'rails'` call is the following:
21
+ ```ruby
22
+ track_files 'app/**/*.rb'
23
+
24
+ add_filter '/bin/'
25
+ add_filter '/config/'
26
+ add_filter '/db/'
27
+ add_filter '/lib/'
28
+ add_filter '/test/'
29
+ add_filter 'vendor'
30
+ add_filter 'node_modules'
31
+ add_filter '/Rakefile'
32
+ add_filter '/app/controllers/admin/'
33
+
34
+ add_group 'Services', 'app/services'
35
+ ```
36
+ We assume that admin controllers are not critical enought to be tracked in the coverage, but if you need to, you can override those settings by adding a `config/initializers/coverage.rb` with:
37
+ ```ruby
38
+ ParallelCoverage.simple_cov_config = proc do
39
+ add_filter '/my/awesome/filter1'
40
+ add_filter '/my/awesome/filter2'
41
+ ...
42
+ end
43
+ ```
44
+ Keep in mind that by doing this you will totally disable the default config, so you'll have to put it back in your `config/initializers/coverage.rb` if you want to extend the config.
45
+
46
+ ## Release
47
+ Before all, configure your credentials for RubyGems :
48
+
49
+ 1. Login to RubyGems
50
+ 2. Create a token which have rights to push gems (https://rubygems.org/profile/api_keys)
51
+ 3. Add it to your config:
52
+ ```
53
+ echo ":rubygems_api_key: YOUR_API_KEY" >> ~/.gem/credentials
54
+ ```
55
+
56
+ You just have to run default command:
57
+ ```
58
+ rake release
59
+ ```
60
+
61
+ Else, to publish a new version of this gem, you'll need to build it with
62
+ `gem build parallel_coverage.gemspec` and then push it manually:
63
+ ```
64
+ gem push parallel_coverage-X.X.X.gem
65
+ ```
66
+
67
+ ## License
68
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). Copyright 2021 Codeur SARL.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'parallel_coverage/version'
4
+ require 'parallel_coverage/engine'
5
+
6
+ class ParallelCoverage
7
+ cattr_accessor :simple_cov_config
8
+
9
+ def self.run_coverage
10
+ return unless ENV['COVERAGE']
11
+
12
+ require 'simplecov'
13
+
14
+ SimpleCov.start 'rails', &simple_cov_config
15
+ end
16
+
17
+ def self.parallelize_coverage
18
+ return unless ENV['COVERAGE']
19
+
20
+ ActiveSupport::TestCase.parallelize_setup do |worker|
21
+ SimpleCov.command_name "#{SimpleCov.command_name}-#{worker}"
22
+ end
23
+
24
+ ActiveSupport::TestCase.parallelize_teardown do
25
+ SimpleCov.result
26
+ end
27
+ end
28
+ end
29
+
30
+ ParallelCoverage.simple_cov_config = proc do
31
+ track_files 'app/**/*.rb'
32
+
33
+ add_filter '/bin/'
34
+ add_filter '/config/'
35
+ add_filter '/db/'
36
+ add_filter '/lib/'
37
+ add_filter '/test/'
38
+ add_filter 'vendor'
39
+ add_filter 'node_modules'
40
+ add_filter '/Rakefile'
41
+ add_filter '/app/controllers/admin/'
42
+ add_filter '/app/presenters/admin/'
43
+ add_filter '/app/decorators/admin/'
44
+ add_filter '/app/helpers/admin/'
45
+
46
+ add_group 'Services', 'app/services'
47
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ParallelCoverage
4
+ class Engine < ::Rails::Engine
5
+ initializer 'parallel_coverage.run', after: :load_config_initializers do
6
+ ParallelCoverage.run_coverage
7
+ end
8
+
9
+ initializer 'parallel_coverage.report' do
10
+ ParallelCoverage.parallelize_coverage
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ParallelCoverage
4
+ VERSION = '0.1.5'
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallel_coverage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dev-team Codeur
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-17 00:00:00.000000000 Z
11
+ date: 2021-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -59,7 +59,12 @@ email:
59
59
  executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
- files: []
62
+ files:
63
+ - README.md
64
+ - Rakefile
65
+ - lib/parallel_coverage.rb
66
+ - lib/parallel_coverage/engine.rb
67
+ - lib/parallel_coverage/version.rb
63
68
  homepage: https://github.com/codeur/parallel_coverage
64
69
  licenses:
65
70
  - MIT
@@ -80,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
85
  - !ruby/object:Gem::Version
81
86
  version: '0'
82
87
  requirements: []
83
- rubygems_version: 3.0.3
88
+ rubygems_version: 3.2.7
84
89
  signing_key:
85
90
  specification_version: 4
86
91
  summary: Setup code coverage for parallelized rails tests