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 +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
|