parallel_coverage 0.1.0 → 0.1.1
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/README.md +59 -0
- data/Rakefile +1 -0
- data/lib/parallel_coverage.rb +40 -0
- data/lib/parallel_coverage/engine.rb +13 -0
- data/lib/parallel_coverage/version.rb +5 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 300ab57d8a943ab4515cd04cd1e24494139dd1af19f644520bccc3b112359429
|
4
|
+
data.tar.gz: f4687a0dc707a693a20856a758d9b5aeace26a918546e7f0e818842ef9248ed1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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.
|
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
|