simplecov 0.6.4 → 0.7.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.
- data/.gitignore +1 -0
- data/.travis.yml +9 -3
- data/.yardopts +1 -0
- data/CHANGELOG.md +22 -0
- data/CONTRIBUTING.md +20 -0
- data/README.md +58 -36
- data/features/config_formatters.feature +52 -0
- data/features/maximum_coverage_drop.feature +36 -0
- data/features/merging_test_unit_and_rspec.feature +1 -1
- data/features/minimum_coverage.feature +59 -0
- data/features/refuse_coverage_drop.feature +35 -0
- data/lib/simplecov.rb +11 -0
- data/lib/simplecov/configuration.rb +35 -7
- data/lib/simplecov/defaults.rb +30 -1
- data/lib/simplecov/exit_codes.rb +5 -0
- data/lib/simplecov/formatter.rb +1 -0
- data/lib/simplecov/formatter/multi_formatter.rb +25 -0
- data/lib/simplecov/json.rb +27 -0
- data/lib/simplecov/last_run.rb +20 -0
- data/lib/simplecov/result_merger.rb +3 -19
- data/lib/simplecov/version.rb +1 -1
- data/simplecov.gemspec +1 -1
- data/test/fixtures/sample.rb +1 -1
- data/test/test_result.rb +16 -1
- metadata +80 -98
- data/gemfiles/multi_json-legacy.gemfile.lock +0 -85
- data/gemfiles/multi_json-new.gemfile.lock +0 -85
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
before_install:
|
2
|
+
- echo "yes" | gem uninstall json
|
1
3
|
script:
|
2
4
|
- bundle
|
3
5
|
- rake appraisal:install
|
@@ -6,10 +8,14 @@ rvm:
|
|
6
8
|
- 1.8.7
|
7
9
|
- 1.9.2
|
8
10
|
- 1.9.3
|
11
|
+
- ruby-head
|
9
12
|
- ree
|
10
|
-
- rbx
|
11
|
-
- jruby
|
13
|
+
- rbx-18mode
|
14
|
+
- jruby-18mode
|
15
|
+
matrix:
|
16
|
+
allow_failures:
|
17
|
+
- rvm: ruby-head
|
12
18
|
notifications:
|
13
19
|
email:
|
14
20
|
on_success: always
|
15
|
-
on_failure: always
|
21
|
+
on_failure: always
|
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
- **/*.md
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
Unreleased ([changes](https://github.com/colszowka/simplecov/compare/v0.7.0...master))
|
2
|
+
-------------------
|
3
|
+
|
4
|
+
v0.7.0, 2012-10-10 ([changes](https://github.com/colszowka/simplecov/compare/v0.6.4...v0.7.0))
|
5
|
+
-------------------
|
6
|
+
|
7
|
+
* [FEATURE] The new `maximum_coverage_drop` and `minimum_coverage` now allow you to fail your build when the
|
8
|
+
coverage dropped by more than what you allowed or is below a minimum value required. Also, `refuse_coverage_drop` disallows
|
9
|
+
any coverage drops between test runs.
|
10
|
+
See https://github.com/colszowka/simplecov/pull/151, https://github.com/colszowka/simplecov/issues/11,
|
11
|
+
https://github.com/colszowka/simplecov/issues/90, and https://github.com/colszowka/simplecov/issues/96 (thanks to @infertux)
|
12
|
+
* [FEATURE] SimpleCov now ships with a built-in MultiFormatter which allows the easy usage of multiple result formatters at
|
13
|
+
the same time without the need to write custom wrapper code.
|
14
|
+
See https://github.com/colszowka/simplecov/pull/158 (thanks to @nikitug)
|
15
|
+
* [BUGFIX] The usage of digits, hyphens and underscores in group names could lead to broken tab navigation
|
16
|
+
in the default simplecov-html reports. See https://github.com/colszowka/simplecov-html/pull/14 (thanks to @ebelgarts)
|
17
|
+
* [REFACTORING] A few more ruby warnings removed. See https://github.com/colszowka/simplecov/issues/106 and
|
18
|
+
https://github.com/colszowka/simplecov/pull/139. (thanks to @lukejahnke)
|
19
|
+
* A [Pledgie button](https://github.com/colszowka/simplecov/commit/63cfa99f8658fa5cc66a38c83b3195fdf71b9e93) for those that
|
20
|
+
feel generous :)
|
21
|
+
* The usual bunch of README fixes and documentation tweaks. Thanks to everyone who contributed those!
|
22
|
+
|
1
23
|
v0.6.4, 2012-05-10 ([changes](https://github.com/colszowka/simplecov/compare/v0.6.3...v0.6.4))
|
2
24
|
-------------------
|
3
25
|
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# Making Contributions
|
2
|
+
|
3
|
+
To fetch & test the library for development, do:
|
4
|
+
|
5
|
+
$ git clone https://github.com/colszowka/simplecov.git
|
6
|
+
$ cd simplecov
|
7
|
+
$ bundle
|
8
|
+
$ rake appraisal:install
|
9
|
+
$ rake appraisal
|
10
|
+
|
11
|
+
For more information on the appraisal gem (for testing against multiple gem dependency versions), please see
|
12
|
+
https://github.com/thoughtbot/appraisal/
|
13
|
+
|
14
|
+
If you want to contribute, please:
|
15
|
+
|
16
|
+
* Fork the project.
|
17
|
+
* Make your feature addition or bug fix.
|
18
|
+
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
19
|
+
* **Bonus Points** go out to anyone who also updates `CHANGELOG.md` :)
|
20
|
+
* Send me a pull request on Github.
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
SimpleCov [][Continuous Integration] [][Dependencies]
|
2
2
|
=========
|
3
|
-
|
3
|
+
**Code coverage for Ruby 1.9**
|
4
4
|
|
5
5
|
* [Source Code]
|
6
6
|
* [API documentation]
|
@@ -8,7 +8,7 @@ SimpleCov [
|
|
8
8
|
* [Rubygem]
|
9
9
|
* [Continuous Integration]
|
10
10
|
|
11
|
-
[Coverage]: http://www.ruby-doc.org/
|
11
|
+
[Coverage]: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/coverage/rdoc/Coverage.html "API doc for Ruby 1.9's Coverage library"
|
12
12
|
[Source Code]: https://github.com/colszowka/simplecov "Source Code @ GitHub"
|
13
13
|
[API documentation]: http://rubydoc.info/gems/simplecov/frames "RDoc API Documentation at Rubydoc.info"
|
14
14
|
[Configuration]: http://rubydoc.info/gems/simplecov/SimpleCov/Configuration "Configuration options API documentation"
|
@@ -17,7 +17,9 @@ SimpleCov [
|
|
17
17
|
[Continuous Integration]: http://travis-ci.org/colszowka/simplecov "SimpleCov is built around the clock by travis-ci.org"
|
18
18
|
[Dependencies]: https://gemnasium.com/colszowka/simplecov "SimpleCov dependencies on Gemnasium"
|
19
19
|
[simplecov-html]: https://github.com/colszowka/simplecov-html "SimpleCov HTML Formatter Source Code @ GitHub"
|
20
|
+
[Pledgie]: http://www.pledgie.com/campaigns/18379
|
20
21
|
|
22
|
+
[][Pledgie]
|
21
23
|
|
22
24
|
SimpleCov is a code coverage analysis tool for Ruby 1.9. It uses [1.9's built-in Coverage][Coverage] library to gather code
|
23
25
|
coverage data, but makes processing its results much easier by providing a clean API to filter, group, merge, format
|
@@ -48,8 +50,20 @@ Getting started
|
|
48
50
|
|
49
51
|
# Previous content of test helper now starts here
|
50
52
|
|
51
|
-
**Note:** If SimpleCov starts after your application code is already loaded (via `require`), it won't be able to
|
52
|
-
The `SimpleCov.start` **must** be issued **before any of your application code
|
53
|
+
**Note:** If SimpleCov starts after your application code is already loaded (via `require`), it won't be able to
|
54
|
+
track your files and their coverage! The `SimpleCov.start` **must** be issued **before any of your application code
|
55
|
+
is required!**
|
56
|
+
|
57
|
+
SimpleCov must be running in the process that you want the code coverage analysis to happen on. When testing a server
|
58
|
+
process (i.e. a JSON API endpoint) via a separate test process (i.e. when using Selenium) where you want to see all
|
59
|
+
code executed by the `rails server`, and not just code executed in your actual test files, you'll want to add something
|
60
|
+
like this to the top of `script/rails`:
|
61
|
+
|
62
|
+
if ENV['RAILS_ENV'] == 'test'
|
63
|
+
require 'simplecov'
|
64
|
+
SimpleCov.start 'rails'
|
65
|
+
puts "required simplecov"
|
66
|
+
end
|
53
67
|
|
54
68
|
3. Run your tests, open up `coverage/index.html` in your browser and check out what you've missed so far.
|
55
69
|
|
@@ -148,6 +162,18 @@ to use SimpleCov with them. Here's an overview of the known ones:
|
|
148
162
|
<a href="https://github.com/colszowka/simplecov/issues/80">SimpleCov #80</a>
|
149
163
|
</td>
|
150
164
|
</tr>
|
165
|
+
<tr>
|
166
|
+
<td>
|
167
|
+
<b>RubyMine</b>
|
168
|
+
</td>
|
169
|
+
<td>
|
170
|
+
The <a href="https://www.jetbrains.com/ruby/">RubyMine IDE</a> has built-in support for SimpleCov's coverage reports,
|
171
|
+
though you might need to explicitly set the output root using `SimpleCov.root('foo/bar/baz')`
|
172
|
+
</td>
|
173
|
+
<td>
|
174
|
+
<a href="https://github.com/colszowka/simplecov/issues/95">SimpleCov #95</a>
|
175
|
+
</td>
|
176
|
+
</tr>
|
151
177
|
</table>
|
152
178
|
|
153
179
|
## Configuring SimpleCov
|
@@ -264,7 +290,7 @@ Add your groups with:
|
|
264
290
|
|
265
291
|
Normally, you want to have your coverage analyzed across ALL of your test suites, right?
|
266
292
|
|
267
|
-
Simplecov automatically caches coverage results in your (coverage_path)
|
293
|
+
Simplecov automatically caches coverage results in your (coverage_path)/.resultset.json. Those results will then
|
268
294
|
be automatically merged when generating the result, so when coverage is set up properly for cucumber and your
|
269
295
|
unit / functional / integration tests, all of those test suites will be taken into account when building the
|
270
296
|
coverage report.
|
@@ -391,6 +417,23 @@ You can define what simplecov should do when your test suite finishes by customi
|
|
391
417
|
|
392
418
|
Above is the default behaviour. Do whatever you like instead!
|
393
419
|
|
420
|
+
### Minimum coverage
|
421
|
+
|
422
|
+
You can define the minimum coverage percentage expected. SimpleCov will return non-zero if unmet.
|
423
|
+
|
424
|
+
SimpleCov.minimum_coverage 90
|
425
|
+
|
426
|
+
### Maximum coverage drop
|
427
|
+
|
428
|
+
You can define the maximum coverage drop percentage at once. SimpleCov will return non-zero if exceeded.
|
429
|
+
|
430
|
+
SimpleCov.maximum_coverage_drop 5
|
431
|
+
|
432
|
+
### Refuse dropping coverage
|
433
|
+
|
434
|
+
You can also entirely refuse dropping coverage between test runs:
|
435
|
+
|
436
|
+
SimpleCov.refuse_coverage_drop
|
394
437
|
|
395
438
|
## Using your own formatter
|
396
439
|
|
@@ -404,18 +447,12 @@ being an instance of SimpleCov::Result. Do whatever your wish with that!
|
|
404
447
|
|
405
448
|
## Using multiple formatters
|
406
449
|
|
407
|
-
|
408
|
-
|
409
|
-
class SimpleCov::Formatter::MergedFormatter
|
410
|
-
def format(result)
|
411
|
-
SimpleCov::Formatter::HTMLFormatter.new.format(result)
|
412
|
-
SimpleCov::Formatter::CSVFormatter.new.format(result)
|
413
|
-
end
|
414
|
-
end
|
415
|
-
|
416
|
-
Then configure the formatter to use the new merger:
|
450
|
+
If you want to use multiple result formats, as of SimpleCov 0.7.0 you can use the built-in MultiFormatter:
|
417
451
|
|
418
|
-
SimpleCov.formatter = SimpleCov::Formatter::
|
452
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
453
|
+
SimpleCov::Formatter::HTMLFormatter,
|
454
|
+
SimpleCov::Formatter::CSVFormatter,
|
455
|
+
]
|
419
456
|
|
420
457
|
## Available formatters
|
421
458
|
|
@@ -432,7 +469,10 @@ available:
|
|
432
469
|
|
433
470
|
CSV formatter for SimpleCov code coverage tool for ruby 1.9+
|
434
471
|
|
472
|
+
#### [simplecov-vim](https://github.com/nyarly/Simplecov-Vim)
|
473
|
+
*by Judson Lester*
|
435
474
|
|
475
|
+
A formatter for Simplecov that emits a Vim script to mark up code files with coverage information.
|
436
476
|
|
437
477
|
## Ruby version compatibility
|
438
478
|
|
@@ -445,27 +485,9 @@ interpreters add the coverage library.
|
|
445
485
|
|
446
486
|
SimpleCov is built in [Continuous Integration] on 1.8.7, ree, 1.9.2, 1.9.3.
|
447
487
|
|
488
|
+
## Contributing
|
448
489
|
|
449
|
-
|
450
|
-
## Contributions
|
451
|
-
|
452
|
-
To fetch & test the library for development, do:
|
453
|
-
|
454
|
-
$ git clone https://github.com/colszowka/simplecov.git
|
455
|
-
$ cd simplecov
|
456
|
-
$ bundle
|
457
|
-
$ rake appraisal:install
|
458
|
-
$ rake appraisal
|
459
|
-
|
460
|
-
For more information on the appraisal gem (for testing against multiple gem dependency versions), please see
|
461
|
-
https://github.com/thoughtbot/appraisal/
|
462
|
-
|
463
|
-
If you want to contribute, please:
|
464
|
-
|
465
|
-
* Fork the project.
|
466
|
-
* Make your feature addition or bug fix.
|
467
|
-
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
468
|
-
* Send me a pull request on Github.
|
490
|
+
See the [contributing guide](https://github.com/colszowka/simplecov/blob/master/CONTRIBUTING.md).
|
469
491
|
|
470
492
|
## Kudos
|
471
493
|
|
@@ -0,0 +1,52 @@
|
|
1
|
+
@test_unit @config
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
The formatter for test coverage can be customized
|
5
|
+
with the SimpleCov.formatter setting. There are two
|
6
|
+
built-in formatters:
|
7
|
+
SimpleCov::Formatter::SimpleFormatter is a simple
|
8
|
+
formatter returning a string of all files with
|
9
|
+
theirs coverages.
|
10
|
+
SimpleCov::Formatter::MultiFormatter is a formatter
|
11
|
+
used to call multiple formatters at once.
|
12
|
+
|
13
|
+
Scenario: With SimpleFormatter
|
14
|
+
Given SimpleCov for Test/Unit is configured with:
|
15
|
+
"""
|
16
|
+
require 'simplecov'
|
17
|
+
SimpleCov.formatter = SimpleCov::Formatter::SimpleFormatter
|
18
|
+
SimpleCov.at_exit do
|
19
|
+
puts SimpleCov.result.format!
|
20
|
+
end
|
21
|
+
SimpleCov.start do
|
22
|
+
add_group 'Libs', 'lib/faked_project/'
|
23
|
+
end
|
24
|
+
"""
|
25
|
+
|
26
|
+
When I successfully run `bundle exec rake test`
|
27
|
+
Then the output should contain "lib/faked_project/meta_magic.rb (coverage: 100.0%)"
|
28
|
+
|
29
|
+
Scenario: With MultiFormatter
|
30
|
+
Given SimpleCov for Test/Unit is configured with:
|
31
|
+
"""
|
32
|
+
require 'simplecov'
|
33
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
34
|
+
SimpleCov::Formatter::SimpleFormatter,
|
35
|
+
Class.new do
|
36
|
+
def format(result)
|
37
|
+
raise "Unable to format"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
]
|
41
|
+
|
42
|
+
SimpleCov.at_exit do
|
43
|
+
puts SimpleCov.result.format!.join
|
44
|
+
end
|
45
|
+
SimpleCov.start do
|
46
|
+
add_group 'Libs', 'lib/faked_project/'
|
47
|
+
end
|
48
|
+
"""
|
49
|
+
|
50
|
+
When I successfully run `bundle exec rake test`
|
51
|
+
Then the output should contain "lib/faked_project/meta_magic.rb (coverage: 100.0%)"
|
52
|
+
And the output should match /Formatter [^\s]* failed with RuntimeError: Unable to format/
|
@@ -0,0 +1,36 @@
|
|
1
|
+
@test_unit @config
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Exit code should be non-zero if the overall coverage decreases by more than
|
5
|
+
the maximum_coverage_drop threshold.
|
6
|
+
|
7
|
+
Scenario:
|
8
|
+
Given SimpleCov for Test/Unit is configured with:
|
9
|
+
"""
|
10
|
+
require 'simplecov'
|
11
|
+
SimpleCov.start do
|
12
|
+
add_filter 'test.rb'
|
13
|
+
maximum_coverage_drop 3.14
|
14
|
+
end
|
15
|
+
"""
|
16
|
+
|
17
|
+
When I run `bundle exec rake test`
|
18
|
+
Then the exit status should be 0
|
19
|
+
And a file named "coverage/.last_run.json" should exist
|
20
|
+
|
21
|
+
Given a file named "lib/faked_project/missed.rb" with:
|
22
|
+
"""
|
23
|
+
class UncoveredSourceCode
|
24
|
+
def foo
|
25
|
+
never_reached
|
26
|
+
rescue => err
|
27
|
+
but no one cares about invalid ruby here
|
28
|
+
end
|
29
|
+
end
|
30
|
+
"""
|
31
|
+
|
32
|
+
When I run `bundle exec rake test`
|
33
|
+
Then the exit status should not be 0
|
34
|
+
And the output should contain "Coverage has dropped by 3.32% since the last time (maximum allowed: 3.14%)."
|
35
|
+
And a file named "coverage/.last_run.json" should exist
|
36
|
+
|
@@ -0,0 +1,59 @@
|
|
1
|
+
@test_unit @config
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Exit code should be non-zero if the overall coverage is below the
|
5
|
+
minimum_coverage threshold.
|
6
|
+
|
7
|
+
Scenario:
|
8
|
+
Given SimpleCov for Test/Unit is configured with:
|
9
|
+
"""
|
10
|
+
require 'simplecov'
|
11
|
+
SimpleCov.start do
|
12
|
+
add_filter 'test.rb'
|
13
|
+
minimum_coverage 90
|
14
|
+
end
|
15
|
+
"""
|
16
|
+
|
17
|
+
When I run `bundle exec rake test`
|
18
|
+
Then the exit status should not be 0
|
19
|
+
And the output should contain "Coverage (88.10%) is below the expected minimum coverage (90.00%)."
|
20
|
+
|
21
|
+
Scenario:
|
22
|
+
Given SimpleCov for Test/Unit is configured with:
|
23
|
+
"""
|
24
|
+
require 'simplecov'
|
25
|
+
SimpleCov.start do
|
26
|
+
add_filter 'test.rb'
|
27
|
+
minimum_coverage 88.11
|
28
|
+
end
|
29
|
+
"""
|
30
|
+
|
31
|
+
When I run `bundle exec rake test`
|
32
|
+
Then the exit status should not be 0
|
33
|
+
And the output should contain "Coverage (88.10%) is below the expected minimum coverage (88.11%)."
|
34
|
+
|
35
|
+
Scenario:
|
36
|
+
Given SimpleCov for Test/Unit is configured with:
|
37
|
+
"""
|
38
|
+
require 'simplecov'
|
39
|
+
SimpleCov.start do
|
40
|
+
add_filter 'test.rb'
|
41
|
+
minimum_coverage 88.10
|
42
|
+
end
|
43
|
+
"""
|
44
|
+
|
45
|
+
When I run `bundle exec rake test`
|
46
|
+
Then the exit status should be 0
|
47
|
+
|
48
|
+
Scenario:
|
49
|
+
Given SimpleCov for Test/Unit is configured with:
|
50
|
+
"""
|
51
|
+
require 'simplecov'
|
52
|
+
SimpleCov.start do
|
53
|
+
add_filter 'test.rb'
|
54
|
+
end
|
55
|
+
"""
|
56
|
+
|
57
|
+
When I run `bundle exec rake test`
|
58
|
+
Then the exit status should be 0
|
59
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
@test_unit @config
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Exit code should be non-zero if the overall coverage decreases.
|
5
|
+
|
6
|
+
Scenario:
|
7
|
+
Given SimpleCov for Test/Unit is configured with:
|
8
|
+
"""
|
9
|
+
require 'simplecov'
|
10
|
+
SimpleCov.start do
|
11
|
+
add_filter 'test.rb'
|
12
|
+
refuse_coverage_drop
|
13
|
+
end
|
14
|
+
"""
|
15
|
+
|
16
|
+
When I run `bundle exec rake test`
|
17
|
+
Then the exit status should be 0
|
18
|
+
And a file named "coverage/.last_run.json" should exist
|
19
|
+
|
20
|
+
Given a file named "lib/faked_project/missed.rb" with:
|
21
|
+
"""
|
22
|
+
class UncoveredSourceCode
|
23
|
+
def foo
|
24
|
+
never_reached
|
25
|
+
rescue => err
|
26
|
+
but no one cares about invalid ruby here
|
27
|
+
end
|
28
|
+
end
|
29
|
+
"""
|
30
|
+
|
31
|
+
When I run `bundle exec rake test`
|
32
|
+
Then the exit status should not be 0
|
33
|
+
And the output should contain "Coverage has dropped by 3.32% since the last time (maximum allowed: 0.00%)."
|
34
|
+
And a file named "coverage/.last_run.json" should exist
|
35
|
+
|
data/lib/simplecov.rb
CHANGED
@@ -54,6 +54,14 @@ module SimpleCov
|
|
54
54
|
self.running = false
|
55
55
|
end
|
56
56
|
|
57
|
+
#
|
58
|
+
# Returns nil if the result has not been computed
|
59
|
+
# Otherwise, returns the result
|
60
|
+
#
|
61
|
+
def result?
|
62
|
+
defined? @result and @result
|
63
|
+
end
|
64
|
+
|
57
65
|
#
|
58
66
|
# Applies the configured filters to the given array of SimpleCov::SourceFile items
|
59
67
|
#
|
@@ -105,12 +113,15 @@ end
|
|
105
113
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__)))
|
106
114
|
require 'simplecov/configuration'
|
107
115
|
SimpleCov.send :extend, SimpleCov::Configuration
|
116
|
+
require 'simplecov/exit_codes'
|
117
|
+
require 'simplecov/json'
|
108
118
|
require 'simplecov/adapters'
|
109
119
|
require 'simplecov/source_file'
|
110
120
|
require 'simplecov/file_list'
|
111
121
|
require 'simplecov/result'
|
112
122
|
require 'simplecov/filter'
|
113
123
|
require 'simplecov/formatter'
|
124
|
+
require 'simplecov/last_run'
|
114
125
|
require 'simplecov/merge_helpers'
|
115
126
|
require 'simplecov/result_merger'
|
116
127
|
require 'simplecov/command_guesser'
|
@@ -60,7 +60,7 @@ module SimpleCov::Configuration
|
|
60
60
|
@name ||= SimpleCov::CommandGuesser.guess
|
61
61
|
@name
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
#
|
65
65
|
# Gets or sets the configured formatter.
|
66
66
|
#
|
@@ -108,7 +108,7 @@ module SimpleCov::Configuration
|
|
108
108
|
# add_filter 'foobar'
|
109
109
|
# end
|
110
110
|
#
|
111
|
-
# This is equivalent to SimpleCov.add_filter 'foobar' and thus makes it easier to set a
|
111
|
+
# This is equivalent to SimpleCov.add_filter 'foobar' and thus makes it easier to set a bunch of configure
|
112
112
|
# options at once.
|
113
113
|
#
|
114
114
|
def configure(&block)
|
@@ -138,7 +138,7 @@ module SimpleCov::Configuration
|
|
138
138
|
# the SimpleCov.root is this.
|
139
139
|
#
|
140
140
|
def project_name(new_name=nil)
|
141
|
-
return @project_name if @project_name and new_name.nil?
|
141
|
+
return @project_name if defined? @project_name and @project_name and new_name.nil?
|
142
142
|
@project_name = new_name if new_name.kind_of?(String)
|
143
143
|
@project_name ||= File.basename(root.split('/').last).capitalize.gsub('_', ' ')
|
144
144
|
end
|
@@ -148,8 +148,8 @@ module SimpleCov::Configuration
|
|
148
148
|
# are joined and combined into a single coverage report
|
149
149
|
#
|
150
150
|
def use_merging(use=nil)
|
151
|
-
@use_merging = use unless use.nil?
|
152
|
-
@use_merging = true
|
151
|
+
@use_merging = use unless use.nil?
|
152
|
+
@use_merging = true unless defined? @use_merging and @use_merging == false
|
153
153
|
end
|
154
154
|
|
155
155
|
#
|
@@ -165,10 +165,38 @@ module SimpleCov::Configuration
|
|
165
165
|
# Configure with SimpleCov.merge_timeout(3600) # 1hr
|
166
166
|
#
|
167
167
|
def merge_timeout(seconds=nil)
|
168
|
-
@merge_timeout = seconds if
|
168
|
+
@merge_timeout = seconds if seconds.kind_of?(Fixnum)
|
169
169
|
@merge_timeout ||= 600
|
170
170
|
end
|
171
171
|
|
172
|
+
#
|
173
|
+
# Defines the minimum overall coverage required for the testsuite to pass.
|
174
|
+
# SimpleCov will return non-zero if the current coverage is below this threshold.
|
175
|
+
#
|
176
|
+
# Default is 0% (disabled)
|
177
|
+
#
|
178
|
+
def minimum_coverage(coverage=nil)
|
179
|
+
@minimum_coverage ||= (coverage || 0).to_f.round(2)
|
180
|
+
end
|
181
|
+
|
182
|
+
#
|
183
|
+
# Defines the maximum coverage drop at once allowed for the testsuite to pass.
|
184
|
+
# SimpleCov will return non-zero if the coverage decreases by more than this threshold.
|
185
|
+
#
|
186
|
+
# Default is 100% (disabled)
|
187
|
+
#
|
188
|
+
def maximum_coverage_drop(coverage_drop=nil)
|
189
|
+
@maximum_coverage_drop ||= (coverage_drop || 100).to_f.round(2)
|
190
|
+
end
|
191
|
+
|
192
|
+
#
|
193
|
+
# Refuses any coverage drop. That is, coverage is only allowed to increase.
|
194
|
+
# SimpleCov will return non-zero if the coverage decreases.
|
195
|
+
#
|
196
|
+
def refuse_coverage_drop
|
197
|
+
maximum_coverage_drop 0
|
198
|
+
end
|
199
|
+
|
172
200
|
#
|
173
201
|
# Add a filter to the processing chain.
|
174
202
|
# There are three ways to define a filter:
|
@@ -195,7 +223,7 @@ module SimpleCov::Configuration
|
|
195
223
|
def add_group(group_name, filter_argument=nil, &filter_proc)
|
196
224
|
groups[group_name] = parse_filter(filter_argument, &filter_proc)
|
197
225
|
end
|
198
|
-
|
226
|
+
|
199
227
|
private
|
200
228
|
|
201
229
|
#
|
data/lib/simplecov/defaults.rb
CHANGED
@@ -46,9 +46,38 @@ at_exit do
|
|
46
46
|
#if it was a SystemExit, use the accompanying status
|
47
47
|
#otherwise set a non-zero status representing termination by some other exception
|
48
48
|
#(see github issue 41)
|
49
|
-
@exit_status = $!.is_a?(SystemExit) ? $!.status :
|
49
|
+
@exit_status = $!.is_a?(SystemExit) ? $!.status : SimpleCov::ExitCodes::EXCEPTION
|
50
50
|
end
|
51
|
+
|
51
52
|
SimpleCov.at_exit.call
|
53
|
+
|
54
|
+
if SimpleCov.result? # Result has been computed
|
55
|
+
covered_percent = SimpleCov.result.covered_percent.round(2)
|
56
|
+
|
57
|
+
if @exit_status.to_i == 0 # No other errors
|
58
|
+
@exit_status = if covered_percent < SimpleCov.minimum_coverage
|
59
|
+
$stderr.puts "Coverage (%.2f%%) is below the expected minimum coverage (%.2f%%)." % \
|
60
|
+
[covered_percent, SimpleCov.minimum_coverage]
|
61
|
+
|
62
|
+
SimpleCov::ExitCodes::MINIMUM_COVERAGE
|
63
|
+
|
64
|
+
elsif (last_run = SimpleCov::LastRun.read)
|
65
|
+
diff = last_run['result']['covered_percent'] - covered_percent
|
66
|
+
if diff > SimpleCov.maximum_coverage_drop
|
67
|
+
$stderr.puts "Coverage has dropped by %.2f%% since the last time (maximum allowed: %.2f%%)." % \
|
68
|
+
[diff, SimpleCov.maximum_coverage_drop]
|
69
|
+
|
70
|
+
SimpleCov::ExitCodes::MAXIMUM_COVERAGE_DROP
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
metrics = {
|
76
|
+
:result => { :covered_percent => covered_percent }
|
77
|
+
}
|
78
|
+
SimpleCov::LastRun.write(metrics)
|
79
|
+
end
|
80
|
+
|
52
81
|
exit @exit_status if @exit_status # Force exit with stored status (see github issue #5)
|
53
82
|
end
|
54
83
|
|
data/lib/simplecov/formatter.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
class SimpleCov::Formatter::MultiFormatter
|
2
|
+
def self.[](*args)
|
3
|
+
Class.new(self) do
|
4
|
+
define_method :formatters do
|
5
|
+
@formatters ||= args
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def format(result)
|
11
|
+
formatters.map do |formatter|
|
12
|
+
begin
|
13
|
+
formatter.new.format(result)
|
14
|
+
rescue => e
|
15
|
+
STDERR.puts("Formatter #{formatter} failed with #{e.class}: #{e.message} (#{e.backtrace.first})")
|
16
|
+
nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def formatters
|
22
|
+
@formatters ||= []
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'multi_json'
|
2
|
+
|
3
|
+
module SimpleCov::JSON
|
4
|
+
class << self
|
5
|
+
def parse(json)
|
6
|
+
# Detect and use available MultiJson API - it changed in v1.3
|
7
|
+
if MultiJson.respond_to?(:adapter)
|
8
|
+
MultiJson.load(json)
|
9
|
+
else
|
10
|
+
MultiJson.decode(json)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def dump(string)
|
15
|
+
if defined? ::JSON
|
16
|
+
::JSON.pretty_generate(string)
|
17
|
+
else
|
18
|
+
# Detect and use available MultiJson API - it changed in v1.3
|
19
|
+
if MultiJson.respond_to?(:adapter)
|
20
|
+
MultiJson.dump(string)
|
21
|
+
else
|
22
|
+
MultiJson.encode(string)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module SimpleCov::LastRun
|
2
|
+
class << self
|
3
|
+
def last_run_path
|
4
|
+
File.join(SimpleCov.coverage_path, '.last_run.json')
|
5
|
+
end
|
6
|
+
|
7
|
+
def read
|
8
|
+
return nil unless File.exist?(last_run_path)
|
9
|
+
|
10
|
+
SimpleCov::JSON.parse(File.read(last_run_path))
|
11
|
+
end
|
12
|
+
|
13
|
+
def write(json)
|
14
|
+
File.open(last_run_path, "w+") do |f|
|
15
|
+
f.puts SimpleCov::JSON.dump(json)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'multi_json'
|
2
|
-
|
3
1
|
#
|
4
2
|
# Singleton that is responsible for caching, loading and merging
|
5
3
|
# SimpleCov::Results into a single result for coverage analysis based
|
@@ -7,7 +5,7 @@ require 'multi_json'
|
|
7
5
|
#
|
8
6
|
module SimpleCov::ResultMerger
|
9
7
|
class << self
|
10
|
-
# The path to the resultset.
|
8
|
+
# The path to the .resultset.json cache file
|
11
9
|
def resultset_path
|
12
10
|
File.join(SimpleCov.coverage_path, '.resultset.json')
|
13
11
|
end
|
@@ -15,12 +13,7 @@ module SimpleCov::ResultMerger
|
|
15
13
|
# Loads the cached resultset from YAML and returns it as a Hash
|
16
14
|
def resultset
|
17
15
|
if stored_data
|
18
|
-
|
19
|
-
if MultiJson.respond_to?(:adapter)
|
20
|
-
MultiJson.load(stored_data)
|
21
|
-
else
|
22
|
-
MultiJson.decode(stored_data)
|
23
|
-
end
|
16
|
+
SimpleCov::JSON.parse(stored_data)
|
24
17
|
else
|
25
18
|
{}
|
26
19
|
end
|
@@ -73,16 +66,7 @@ module SimpleCov::ResultMerger
|
|
73
66
|
command_name, data = result.to_hash.first
|
74
67
|
new_set[command_name] = data
|
75
68
|
File.open(resultset_path, "w+") do |f|
|
76
|
-
|
77
|
-
f.puts JSON.pretty_generate(new_set)
|
78
|
-
else
|
79
|
-
# Detect and use available MultiJson API - it changed in v1.3
|
80
|
-
if MultiJson.respond_to?(:adapter)
|
81
|
-
f.puts MultiJson.dump(new_set)
|
82
|
-
else
|
83
|
-
f.puts MultiJson.encode(new_set)
|
84
|
-
end
|
85
|
-
end
|
69
|
+
f.puts SimpleCov::JSON.dump(new_set)
|
86
70
|
end
|
87
71
|
true
|
88
72
|
end
|
data/lib/simplecov/version.rb
CHANGED
data/simplecov.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.summary = gem.description
|
14
14
|
|
15
15
|
gem.add_dependency 'multi_json', '~> 1.0'
|
16
|
-
gem.add_dependency 'simplecov-html', '~> 0.
|
16
|
+
gem.add_dependency 'simplecov-html', '~> 0.7.0'
|
17
17
|
gem.add_development_dependency 'aruba'
|
18
18
|
gem.add_development_dependency 'capybara'
|
19
19
|
gem.add_development_dependency 'appraisal'
|
data/test/fixtures/sample.rb
CHANGED
data/test/test_result.rb
CHANGED
@@ -21,7 +21,7 @@ class TestResult < Test::Unit::TestCase
|
|
21
21
|
|
22
22
|
should "have 3 source files" do
|
23
23
|
assert_equal 3, @result.source_files.count
|
24
|
-
assert @result.source_files.all? {|s| s.instance_of?(SimpleCov::SourceFile)}, "Not
|
24
|
+
assert @result.source_files.all? {|s| s.instance_of?(SimpleCov::SourceFile)}, "Not all instances are of SimpleCov::SourceFile type"
|
25
25
|
end
|
26
26
|
|
27
27
|
should "return an instance of SimpleCov::FileList for source_files and files" do
|
@@ -111,6 +111,21 @@ class TestResult < Test::Unit::TestCase
|
|
111
111
|
assert_equal String, @result.format!.class
|
112
112
|
end
|
113
113
|
end
|
114
|
+
|
115
|
+
context "and multi formatter being used" do
|
116
|
+
setup do
|
117
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
118
|
+
SimpleCov::Formatter::SimpleFormatter,
|
119
|
+
SimpleCov::Formatter::SimpleFormatter,
|
120
|
+
]
|
121
|
+
end
|
122
|
+
|
123
|
+
should "return an array containing formatted string with result.format!" do
|
124
|
+
formated = @result.format!
|
125
|
+
assert_equal 2, formated.count
|
126
|
+
assert_equal String, formated.first.class
|
127
|
+
end
|
128
|
+
end
|
114
129
|
end
|
115
130
|
|
116
131
|
context "with groups set up that do not match all files" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simplecov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,21 +21,31 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: simplecov-html
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
31
36
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.
|
37
|
+
version: 0.7.0
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.7.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: aruba
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: capybara
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: appraisal
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: cucumber
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 1.1.4
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.1.4
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: rake
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: rspec
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: shoulda
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,7 +149,12 @@ dependencies:
|
|
109
149
|
version: '0'
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
113
158
|
description: Code coverage for Ruby 1.9 with a powerful configuration library and
|
114
159
|
automatic merging of coverage across test suites
|
115
160
|
email:
|
@@ -120,8 +165,10 @@ extra_rdoc_files: []
|
|
120
165
|
files:
|
121
166
|
- .gitignore
|
122
167
|
- .travis.yml
|
168
|
+
- .yardopts
|
123
169
|
- Appraisals
|
124
170
|
- CHANGELOG.md
|
171
|
+
- CONTRIBUTING.md
|
125
172
|
- Gemfile
|
126
173
|
- LICENSE
|
127
174
|
- README.md
|
@@ -132,12 +179,16 @@ files:
|
|
132
179
|
- features/config_command_name.feature
|
133
180
|
- features/config_coverage_dir.feature
|
134
181
|
- features/config_deactivate_merging.feature
|
182
|
+
- features/config_formatters.feature
|
135
183
|
- features/config_merge_timeout.feature
|
136
184
|
- features/config_nocov_token.feature
|
137
185
|
- features/config_project_name.feature
|
138
186
|
- features/config_styles.feature
|
139
187
|
- features/cucumber_basic.feature
|
188
|
+
- features/maximum_coverage_drop.feature
|
140
189
|
- features/merging_test_unit_and_rspec.feature
|
190
|
+
- features/minimum_coverage.feature
|
191
|
+
- features/refuse_coverage_drop.feature
|
141
192
|
- features/rspec_basic.feature
|
142
193
|
- features/rspec_fails_on_initialization.feature
|
143
194
|
- features/rspec_groups_and_filters_basic.feature
|
@@ -157,18 +208,20 @@ files:
|
|
157
208
|
- features/test_unit_without_simplecov.feature
|
158
209
|
- features/unicode_compatiblity.feature
|
159
210
|
- gemfiles/multi_json-legacy.gemfile
|
160
|
-
- gemfiles/multi_json-legacy.gemfile.lock
|
161
211
|
- gemfiles/multi_json-new.gemfile
|
162
|
-
- gemfiles/multi_json-new.gemfile.lock
|
163
212
|
- lib/simplecov.rb
|
164
213
|
- lib/simplecov/adapters.rb
|
165
214
|
- lib/simplecov/command_guesser.rb
|
166
215
|
- lib/simplecov/configuration.rb
|
167
216
|
- lib/simplecov/defaults.rb
|
217
|
+
- lib/simplecov/exit_codes.rb
|
168
218
|
- lib/simplecov/file_list.rb
|
169
219
|
- lib/simplecov/filter.rb
|
170
220
|
- lib/simplecov/formatter.rb
|
221
|
+
- lib/simplecov/formatter/multi_formatter.rb
|
171
222
|
- lib/simplecov/formatter/simple_formatter.rb
|
223
|
+
- lib/simplecov/json.rb
|
224
|
+
- lib/simplecov/last_run.rb
|
172
225
|
- lib/simplecov/merge_helpers.rb
|
173
226
|
- lib/simplecov/railtie.rb
|
174
227
|
- lib/simplecov/railties/tasks.rake
|
@@ -233,7 +286,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
286
|
version: '0'
|
234
287
|
segments:
|
235
288
|
- 0
|
236
|
-
hash:
|
289
|
+
hash: -2872785497252698057
|
237
290
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
291
|
none: false
|
239
292
|
requirements:
|
@@ -242,83 +295,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
295
|
version: '0'
|
243
296
|
segments:
|
244
297
|
- 0
|
245
|
-
hash:
|
298
|
+
hash: -2872785497252698057
|
246
299
|
requirements: []
|
247
300
|
rubyforge_project:
|
248
|
-
rubygems_version: 1.8.
|
301
|
+
rubygems_version: 1.8.24
|
249
302
|
signing_key:
|
250
303
|
specification_version: 3
|
251
304
|
summary: Code coverage for Ruby 1.9 with a powerful configuration library and automatic
|
252
305
|
merging of coverage across test suites
|
253
|
-
test_files:
|
254
|
-
- features/config_adapters.feature
|
255
|
-
- features/config_autoload.feature
|
256
|
-
- features/config_command_name.feature
|
257
|
-
- features/config_coverage_dir.feature
|
258
|
-
- features/config_deactivate_merging.feature
|
259
|
-
- features/config_merge_timeout.feature
|
260
|
-
- features/config_nocov_token.feature
|
261
|
-
- features/config_project_name.feature
|
262
|
-
- features/config_styles.feature
|
263
|
-
- features/cucumber_basic.feature
|
264
|
-
- features/merging_test_unit_and_rspec.feature
|
265
|
-
- features/rspec_basic.feature
|
266
|
-
- features/rspec_fails_on_initialization.feature
|
267
|
-
- features/rspec_groups_and_filters_basic.feature
|
268
|
-
- features/rspec_groups_and_filters_complex.feature
|
269
|
-
- features/rspec_groups_using_filter_class.feature
|
270
|
-
- features/rspec_without_simplecov.feature
|
271
|
-
- features/skipping_code_blocks_manually.feature
|
272
|
-
- features/step_definitions/html_steps.rb
|
273
|
-
- features/step_definitions/simplecov_steps.rb
|
274
|
-
- features/step_definitions/transformers.rb
|
275
|
-
- features/step_definitions/web_steps.rb
|
276
|
-
- features/support/env.rb
|
277
|
-
- features/test_unit_basic.feature
|
278
|
-
- features/test_unit_groups_and_filters_basic.feature
|
279
|
-
- features/test_unit_groups_and_filters_complex.feature
|
280
|
-
- features/test_unit_groups_using_filter_class.feature
|
281
|
-
- features/test_unit_without_simplecov.feature
|
282
|
-
- features/unicode_compatiblity.feature
|
283
|
-
- test/faked_project/Gemfile
|
284
|
-
- test/faked_project/Rakefile
|
285
|
-
- test/faked_project/cucumber.yml
|
286
|
-
- test/faked_project/features/step_definitions/my_steps.rb
|
287
|
-
- test/faked_project/features/support/env.rb
|
288
|
-
- test/faked_project/features/test_stuff.feature
|
289
|
-
- test/faked_project/lib/faked_project.rb
|
290
|
-
- test/faked_project/lib/faked_project/framework_specific.rb
|
291
|
-
- test/faked_project/lib/faked_project/meta_magic.rb
|
292
|
-
- test/faked_project/lib/faked_project/some_class.rb
|
293
|
-
- test/faked_project/spec/faked_spec.rb
|
294
|
-
- test/faked_project/spec/meta_magic_spec.rb
|
295
|
-
- test/faked_project/spec/some_class_spec.rb
|
296
|
-
- test/faked_project/spec/spec_helper.rb
|
297
|
-
- test/faked_project/test/faked_test.rb
|
298
|
-
- test/faked_project/test/meta_magic_test.rb
|
299
|
-
- test/faked_project/test/some_class_test.rb
|
300
|
-
- test/faked_project/test/test_helper.rb
|
301
|
-
- test/fixtures/app/controllers/sample_controller.rb
|
302
|
-
- test/fixtures/app/models/user.rb
|
303
|
-
- test/fixtures/deleted_source_sample.rb
|
304
|
-
- test/fixtures/frameworks/rspec_bad.rb
|
305
|
-
- test/fixtures/frameworks/rspec_good.rb
|
306
|
-
- test/fixtures/frameworks/testunit_bad.rb
|
307
|
-
- test/fixtures/frameworks/testunit_good.rb
|
308
|
-
- test/fixtures/iso-8859.rb
|
309
|
-
- test/fixtures/resultset1.rb
|
310
|
-
- test/fixtures/resultset2.rb
|
311
|
-
- test/fixtures/sample.rb
|
312
|
-
- test/fixtures/utf-8.rb
|
313
|
-
- test/helper.rb
|
314
|
-
- test/shoulda_macros.rb
|
315
|
-
- test/test_1_8_fallbacks.rb
|
316
|
-
- test/test_command_guesser.rb
|
317
|
-
- test/test_deleted_source.rb
|
318
|
-
- test/test_file_list.rb
|
319
|
-
- test/test_filters.rb
|
320
|
-
- test/test_merge_helpers.rb
|
321
|
-
- test/test_result.rb
|
322
|
-
- test/test_return_codes.rb
|
323
|
-
- test/test_source_file.rb
|
324
|
-
- test/test_source_file_line.rb
|
306
|
+
test_files: []
|
@@ -1,85 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: /Users/colszowka/Projects/github/colszowka/simplecov
|
3
|
-
specs:
|
4
|
-
simplecov (0.6.2)
|
5
|
-
multi_json (~> 1.0)
|
6
|
-
simplecov-html (~> 0.5.3)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: http://rubygems.org/
|
10
|
-
specs:
|
11
|
-
addressable (2.2.8)
|
12
|
-
appraisal (0.4.1)
|
13
|
-
bundler
|
14
|
-
rake
|
15
|
-
aruba (0.4.11)
|
16
|
-
childprocess (>= 0.2.3)
|
17
|
-
cucumber (>= 1.1.1)
|
18
|
-
ffi (>= 1.0.11)
|
19
|
-
rspec (>= 2.7.0)
|
20
|
-
builder (3.0.0)
|
21
|
-
capybara (1.1.2)
|
22
|
-
mime-types (>= 1.16)
|
23
|
-
nokogiri (>= 1.3.3)
|
24
|
-
rack (>= 1.0.0)
|
25
|
-
rack-test (>= 0.5.4)
|
26
|
-
selenium-webdriver (~> 2.0)
|
27
|
-
xpath (~> 0.1.4)
|
28
|
-
childprocess (0.3.2)
|
29
|
-
ffi (~> 1.0.6)
|
30
|
-
cucumber (1.2.0)
|
31
|
-
builder (>= 2.1.2)
|
32
|
-
diff-lcs (>= 1.1.3)
|
33
|
-
gherkin (~> 2.10.0)
|
34
|
-
json (>= 1.4.6)
|
35
|
-
diff-lcs (1.1.3)
|
36
|
-
ffi (1.0.11)
|
37
|
-
gherkin (2.10.0)
|
38
|
-
json (>= 1.4.6)
|
39
|
-
json (1.7.1)
|
40
|
-
libwebsocket (0.1.3)
|
41
|
-
addressable
|
42
|
-
mime-types (1.18)
|
43
|
-
multi_json (1.0.4)
|
44
|
-
nokogiri (1.5.2)
|
45
|
-
rack (1.4.1)
|
46
|
-
rack-test (0.6.1)
|
47
|
-
rack (>= 1.0)
|
48
|
-
rake (0.9.2.2)
|
49
|
-
rspec (2.10.0)
|
50
|
-
rspec-core (~> 2.10.0)
|
51
|
-
rspec-expectations (~> 2.10.0)
|
52
|
-
rspec-mocks (~> 2.10.0)
|
53
|
-
rspec-core (2.10.0)
|
54
|
-
rspec-expectations (2.10.0)
|
55
|
-
diff-lcs (~> 1.1.3)
|
56
|
-
rspec-mocks (2.10.1)
|
57
|
-
rubyzip (0.9.8)
|
58
|
-
selenium-webdriver (2.21.2)
|
59
|
-
childprocess (>= 0.2.5)
|
60
|
-
ffi (~> 1.0)
|
61
|
-
libwebsocket (~> 0.1.3)
|
62
|
-
multi_json (~> 1.0)
|
63
|
-
rubyzip
|
64
|
-
shoulda (3.0.1)
|
65
|
-
shoulda-context (~> 1.0.0)
|
66
|
-
shoulda-matchers (~> 1.0.0)
|
67
|
-
shoulda-context (1.0.0)
|
68
|
-
shoulda-matchers (1.0.0)
|
69
|
-
simplecov-html (0.5.3)
|
70
|
-
xpath (0.1.4)
|
71
|
-
nokogiri (~> 1.3)
|
72
|
-
|
73
|
-
PLATFORMS
|
74
|
-
ruby
|
75
|
-
|
76
|
-
DEPENDENCIES
|
77
|
-
appraisal
|
78
|
-
aruba
|
79
|
-
capybara
|
80
|
-
cucumber (>= 1.1.4)
|
81
|
-
multi_json (~> 1.0.0)
|
82
|
-
rake
|
83
|
-
rspec
|
84
|
-
shoulda
|
85
|
-
simplecov!
|
@@ -1,85 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: /Users/colszowka/Projects/github/colszowka/simplecov
|
3
|
-
specs:
|
4
|
-
simplecov (0.6.2)
|
5
|
-
multi_json (~> 1.0)
|
6
|
-
simplecov-html (~> 0.5.3)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: http://rubygems.org/
|
10
|
-
specs:
|
11
|
-
addressable (2.2.8)
|
12
|
-
appraisal (0.4.1)
|
13
|
-
bundler
|
14
|
-
rake
|
15
|
-
aruba (0.4.11)
|
16
|
-
childprocess (>= 0.2.3)
|
17
|
-
cucumber (>= 1.1.1)
|
18
|
-
ffi (>= 1.0.11)
|
19
|
-
rspec (>= 2.7.0)
|
20
|
-
builder (3.0.0)
|
21
|
-
capybara (1.1.2)
|
22
|
-
mime-types (>= 1.16)
|
23
|
-
nokogiri (>= 1.3.3)
|
24
|
-
rack (>= 1.0.0)
|
25
|
-
rack-test (>= 0.5.4)
|
26
|
-
selenium-webdriver (~> 2.0)
|
27
|
-
xpath (~> 0.1.4)
|
28
|
-
childprocess (0.3.2)
|
29
|
-
ffi (~> 1.0.6)
|
30
|
-
cucumber (1.2.0)
|
31
|
-
builder (>= 2.1.2)
|
32
|
-
diff-lcs (>= 1.1.3)
|
33
|
-
gherkin (~> 2.10.0)
|
34
|
-
json (>= 1.4.6)
|
35
|
-
diff-lcs (1.1.3)
|
36
|
-
ffi (1.0.11)
|
37
|
-
gherkin (2.10.0)
|
38
|
-
json (>= 1.4.6)
|
39
|
-
json (1.7.1)
|
40
|
-
libwebsocket (0.1.3)
|
41
|
-
addressable
|
42
|
-
mime-types (1.18)
|
43
|
-
multi_json (1.3.4)
|
44
|
-
nokogiri (1.5.2)
|
45
|
-
rack (1.4.1)
|
46
|
-
rack-test (0.6.1)
|
47
|
-
rack (>= 1.0)
|
48
|
-
rake (0.9.2.2)
|
49
|
-
rspec (2.10.0)
|
50
|
-
rspec-core (~> 2.10.0)
|
51
|
-
rspec-expectations (~> 2.10.0)
|
52
|
-
rspec-mocks (~> 2.10.0)
|
53
|
-
rspec-core (2.10.0)
|
54
|
-
rspec-expectations (2.10.0)
|
55
|
-
diff-lcs (~> 1.1.3)
|
56
|
-
rspec-mocks (2.10.1)
|
57
|
-
rubyzip (0.9.8)
|
58
|
-
selenium-webdriver (2.21.2)
|
59
|
-
childprocess (>= 0.2.5)
|
60
|
-
ffi (~> 1.0)
|
61
|
-
libwebsocket (~> 0.1.3)
|
62
|
-
multi_json (~> 1.0)
|
63
|
-
rubyzip
|
64
|
-
shoulda (3.0.1)
|
65
|
-
shoulda-context (~> 1.0.0)
|
66
|
-
shoulda-matchers (~> 1.0.0)
|
67
|
-
shoulda-context (1.0.0)
|
68
|
-
shoulda-matchers (1.0.0)
|
69
|
-
simplecov-html (0.5.3)
|
70
|
-
xpath (0.1.4)
|
71
|
-
nokogiri (~> 1.3)
|
72
|
-
|
73
|
-
PLATFORMS
|
74
|
-
ruby
|
75
|
-
|
76
|
-
DEPENDENCIES
|
77
|
-
appraisal
|
78
|
-
aruba
|
79
|
-
capybara
|
80
|
-
cucumber (>= 1.1.4)
|
81
|
-
multi_json (>= 1.3.4)
|
82
|
-
rake
|
83
|
-
rspec
|
84
|
-
shoulda
|
85
|
-
simplecov!
|