parallel_coverage 0.1.0 → 0.1.1

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: 300ab57d8a943ab4515cd04cd1e24494139dd1af19f644520bccc3b112359429
4
+ data.tar.gz: f4687a0dc707a693a20856a758d9b5aeace26a918546e7f0e818842ef9248ed1
5
5
  SHA512:
6
- metadata.gz: a255cf44d32dc47711d13d8849cf2723d1bb49830d74febb80190c1ff5099486a0e4350c38710e755162225bb717d5c8364cc0edeebf2491da1df20819758fce
7
- data.tar.gz: fed394584759cb564be64eb19327298e1f20bfb38300a833b492bc7ade72a9c53c566fc5d120940d5f65f23eba03debe1f8af6624df8c8ead30526ab8fba4f8a
6
+ metadata.gz: 97f762bcbba8582dd43835bf0e8cb8f7f1a5430db752d7d5a77f1da509513045a3f93c5ff2ee8005c03e87a413dc7099ea57019b54cf0077eafe8a39c5c19e5b
7
+ data.tar.gz: 81a1af3e8aed3ec0b4546e7216672d1e4c8530dd421bbde57117fc79b3380970434bb6f00991c893ade57124c0bc49cec7d8ff589511d3c06a46ba689eaca0f4
data/README.md ADDED
@@ -0,0 +1,59 @@
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 '**/*.rb'
23
+ add_filter '/bin/'
24
+ add_filter '/config/'
25
+ add_filter '/db/'
26
+ add_filter '/lib/'
27
+ add_filter '/test/'
28
+ add_filter '/Rakefile'
29
+ add_filter '/app/controllers/admin'
30
+ ```
31
+ 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:
32
+ ```ruby
33
+ ParallelCoverage.simple_cov_config = proc do
34
+ add_filter '/my/awesome/filter1'
35
+ add_filter '/my/awesome/filter2'
36
+ ...
37
+ end
38
+ ```
39
+
40
+ ## Release (for Codeur dev team members)
41
+ Before all, configure your credentials for `dev-codeur` RubyGems account:
42
+
43
+ 1. Login to RubyGems with the `dev-codeur` account
44
+ 2. Create a token which have rights to push gems (https://rubygems.org/profile/api_keys)
45
+ 3. Add it to your config:
46
+ ```
47
+ echo ":rubygems_api_key: YOUR_API_KEY" >> ~/.gem/credentials
48
+ ```
49
+
50
+ You just have to run default command:
51
+ ```
52
+ rake release
53
+ ```
54
+
55
+ Else, to publish a new version of this gem, you'll need to build it with
56
+ `gem build parallel_coverage.gemspec` and then push it manually:
57
+ ```
58
+ gem push parallel_coverage-X.X.X.gem
59
+ ```
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,40 @@
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 '**/*.rb'
32
+ add_filter '/bin/'
33
+ add_filter '/config/'
34
+ add_filter '/db/'
35
+ add_filter '/lib/'
36
+ add_filter '/test/'
37
+ add_filter '/Rakefile'
38
+ # * Remove admin controllers from coverage
39
+ add_filter '/app/controllers/admin'
40
+ 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.1'
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dev-team Codeur
@@ -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