simplecov 0.4.2 → 0.5.2
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 +4 -1
- data/.rvmrc +1 -1
- data/.travis.yml +9 -0
- data/CHANGELOG.md +64 -0
- data/Gemfile +7 -0
- data/README.rdoc +83 -66
- data/Rakefile +3 -7
- data/cucumber.yml +13 -0
- data/features/config_adapters.feature +44 -0
- data/features/config_autoload.feature +46 -0
- data/features/config_command_name.feature +33 -0
- data/features/config_coverage_dir.feature +20 -0
- data/features/config_deactivate_merging.feature +42 -0
- data/features/config_merge_timeout.feature +38 -0
- data/features/config_project_name.feature +27 -0
- data/features/config_styles.feature +93 -0
- data/features/cucumber_basic.feature +29 -0
- data/features/merging_test_unit_and_rspec.feature +44 -0
- data/features/rspec_basic.feature +31 -0
- data/features/rspec_groups_and_filters_basic.feature +29 -0
- data/features/rspec_groups_and_filters_complex.feature +35 -0
- data/features/rspec_without_simplecov.feature +20 -0
- data/features/step_definitions/html_steps.rb +42 -0
- data/features/step_definitions/simplecov_steps.rb +61 -0
- data/features/step_definitions/transformers.rb +13 -0
- data/features/step_definitions/web_steps.rb +64 -0
- data/features/support/env.rb +26 -0
- data/features/test_unit_basic.feature +34 -0
- data/features/test_unit_groups_and_filters_basic.feature +29 -0
- data/features/test_unit_groups_and_filters_complex.feature +35 -0
- data/features/test_unit_without_simplecov.feature +20 -0
- data/lib/simplecov.rb +15 -30
- data/lib/simplecov/adapters.rb +3 -26
- data/lib/simplecov/command_guesser.rb +2 -2
- data/lib/simplecov/configuration.rb +21 -21
- data/lib/simplecov/defaults.rb +48 -0
- data/lib/simplecov/file_list.rb +44 -0
- data/lib/simplecov/filter.rb +5 -5
- data/lib/simplecov/formatter.rb +1 -1
- data/lib/simplecov/formatter/simple_formatter.rb +1 -1
- data/lib/simplecov/jruby_float_fix.rb +1 -1
- data/lib/simplecov/merge_helpers.rb +4 -4
- data/lib/simplecov/result.rb +33 -30
- data/lib/simplecov/result_merger.rb +30 -13
- data/lib/simplecov/source_file.rb +78 -21
- data/lib/simplecov/version.rb +1 -1
- data/simplecov.gemspec +25 -22
- data/test/faked_project/Gemfile +6 -0
- data/test/faked_project/Rakefile +8 -0
- data/test/faked_project/cucumber.yml +13 -0
- data/test/faked_project/features/step_definitions/my_steps.rb +23 -0
- data/test/faked_project/features/support/env.rb +12 -0
- data/test/faked_project/features/test_stuff.feature +6 -0
- data/test/faked_project/lib/faked_project.rb +11 -0
- data/test/faked_project/lib/faked_project/framework_specific.rb +18 -0
- data/test/faked_project/lib/faked_project/meta_magic.rb +24 -0
- data/test/faked_project/lib/faked_project/some_class.rb +29 -0
- data/test/faked_project/spec/faked_spec.rb +11 -0
- data/test/faked_project/spec/meta_magic_spec.rb +10 -0
- data/test/faked_project/spec/some_class_spec.rb +10 -0
- data/test/faked_project/spec/spec_helper.rb +15 -0
- data/test/faked_project/test/faked_test.rb +11 -0
- data/test/faked_project/test/meta_magic_test.rb +13 -0
- data/test/faked_project/test/some_class_test.rb +15 -0
- data/test/faked_project/test/test_helper.rb +16 -0
- data/test/fixtures/app/controllers/sample_controller.rb +2 -2
- data/test/fixtures/app/models/user.rb +2 -2
- data/test/fixtures/frameworks/rspec_bad.rb +1 -1
- data/test/fixtures/frameworks/rspec_good.rb +1 -1
- data/test/fixtures/frameworks/testunit_bad.rb +1 -1
- data/test/fixtures/frameworks/testunit_good.rb +1 -1
- data/test/fixtures/resultset1.rb +1 -1
- data/test/fixtures/resultset2.rb +1 -1
- data/test/fixtures/sample.rb +8 -2
- data/test/helper.rb +17 -4
- data/test/shoulda_macros.rb +2 -2
- data/test/test_1_8_fallbacks.rb +3 -3
- data/test/test_command_guesser.rb +3 -3
- data/test/test_file_list.rb +24 -0
- data/test/test_filters.rb +18 -13
- data/test/test_merge_helpers.rb +23 -23
- data/test/test_result.rb +40 -31
- data/test/test_return_codes.rb +5 -5
- data/test/test_source_file.rb +39 -15
- data/test/test_source_file_line.rb +22 -22
- metadata +191 -53
- data/.document +0 -5
@@ -0,0 +1,31 @@
|
|
1
|
+
@rspec
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Simply adding the basic simplecov lines to a project should get
|
5
|
+
the user a coverage report after running `rspec`
|
6
|
+
|
7
|
+
Scenario:
|
8
|
+
Given SimpleCov for RSpec is configured with:
|
9
|
+
"""
|
10
|
+
require 'simplecov'
|
11
|
+
SimpleCov.start
|
12
|
+
"""
|
13
|
+
|
14
|
+
When I open the coverage report generated with `bundle exec rspec spec`
|
15
|
+
Then I should see the groups:
|
16
|
+
| name | coverage | files |
|
17
|
+
| All Files | 90.91% | 6 |
|
18
|
+
|
19
|
+
And I should see the source files:
|
20
|
+
| name | coverage |
|
21
|
+
| lib/faked_project.rb | 100.0 % |
|
22
|
+
| lib/faked_project/some_class.rb | 80.0 % |
|
23
|
+
| lib/faked_project/framework_specific.rb | 75.0 % |
|
24
|
+
| lib/faked_project/meta_magic.rb | 100.0 % |
|
25
|
+
| spec/meta_magic_spec.rb | 100.0 % |
|
26
|
+
| spec/some_class_spec.rb | 100.0 % |
|
27
|
+
|
28
|
+
# Note: faked_spec.rb is not appearing here since that's the first unit test file
|
29
|
+
# loaded by Rake, and only there test_helper is required, which then loads simplecov
|
30
|
+
# and triggers tracking of all other loaded files! Solution for this would be to
|
31
|
+
# configure simplecov in this first test instead of test_helper.
|
@@ -0,0 +1,29 @@
|
|
1
|
+
@rspec
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Defining some groups and filters should give a corresponding
|
5
|
+
coverage report that respects those settings after running rspec
|
6
|
+
|
7
|
+
Scenario:
|
8
|
+
Given SimpleCov for RSpec is configured with:
|
9
|
+
"""
|
10
|
+
require 'simplecov'
|
11
|
+
SimpleCov.start do
|
12
|
+
add_group 'Libs', 'lib/faked_project/'
|
13
|
+
add_filter '/spec/'
|
14
|
+
end
|
15
|
+
"""
|
16
|
+
|
17
|
+
When I open the coverage report generated with `bundle exec rspec spec`
|
18
|
+
And I should see the groups:
|
19
|
+
| name | coverage | files |
|
20
|
+
| All Files | 88.37% | 4 |
|
21
|
+
| Libs | 86.11% | 3 |
|
22
|
+
| Ungrouped | 100.0% | 1 |
|
23
|
+
|
24
|
+
And I should see the source files:
|
25
|
+
| name | coverage |
|
26
|
+
| lib/faked_project.rb | 100.0 % |
|
27
|
+
| lib/faked_project/some_class.rb | 80.0 % |
|
28
|
+
| lib/faked_project/framework_specific.rb | 75.0 % |
|
29
|
+
| lib/faked_project/meta_magic.rb | 100.0 % |
|
@@ -0,0 +1,35 @@
|
|
1
|
+
@rspec
|
2
|
+
Feature: Sophisticated grouping and filtering on RSpec
|
3
|
+
|
4
|
+
Defining groups and filters can be done by passing blocks or strings.
|
5
|
+
Blocks get each SimpleCov::SourceFile instance passed an can use arbitrary
|
6
|
+
and potentially weird conditions to remove files from the report or add them
|
7
|
+
to specific groups.
|
8
|
+
|
9
|
+
Scenario:
|
10
|
+
Given SimpleCov for RSpec is configured with:
|
11
|
+
"""
|
12
|
+
require 'simplecov'
|
13
|
+
SimpleCov.start do
|
14
|
+
add_group 'By block' do |src_file|
|
15
|
+
src_file.filename =~ /MaGiC/i
|
16
|
+
end
|
17
|
+
add_group 'By string', 'project/meta_magic'
|
18
|
+
|
19
|
+
add_filter 'faked_project.rb'
|
20
|
+
# Remove all files that include "describe" in their source
|
21
|
+
add_filter {|src_file| src_file.lines.any? {|line| line.src =~ /describe/ } }
|
22
|
+
add_filter {|src_file| src_file.covered_percent < 100 }
|
23
|
+
end
|
24
|
+
"""
|
25
|
+
|
26
|
+
When I open the coverage report generated with `bundle exec rspec spec`
|
27
|
+
Then I should see the groups:
|
28
|
+
| name | coverage | files |
|
29
|
+
| All Files | 100.0% | 1 |
|
30
|
+
| By block | 100.0% | 1 |
|
31
|
+
| By string | 100.0% | 1 |
|
32
|
+
|
33
|
+
And I should see the source files:
|
34
|
+
| name | coverage |
|
35
|
+
| lib/faked_project/meta_magic.rb | 100.0 % |
|
@@ -0,0 +1,20 @@
|
|
1
|
+
@rspec
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Running specs without simplecov configuration
|
5
|
+
|
6
|
+
Scenario: No config at all
|
7
|
+
When I successfully run `bundle exec rspec spec`
|
8
|
+
Then no coverage report should have been generated
|
9
|
+
|
10
|
+
Scenario: Configured, but not started
|
11
|
+
Given SimpleCov for RSpec is configured with:
|
12
|
+
"""
|
13
|
+
require 'simplecov'
|
14
|
+
SimpleCov.configure do
|
15
|
+
add_filter 'somefilter'
|
16
|
+
end
|
17
|
+
"""
|
18
|
+
|
19
|
+
When I successfully run `bundle exec rspec spec`
|
20
|
+
Then no coverage report should have been generated
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module GroupHelpers
|
2
|
+
def available_groups
|
3
|
+
all('#content .file_list_container')
|
4
|
+
end
|
5
|
+
|
6
|
+
def available_source_files
|
7
|
+
all('.source_files .source_table')
|
8
|
+
end
|
9
|
+
end
|
10
|
+
World(GroupHelpers)
|
11
|
+
|
12
|
+
|
13
|
+
Then /^I should see the groups:$/ do |table|
|
14
|
+
expected_groups = table.hashes
|
15
|
+
# Given group names should be the same number than those rendered in report
|
16
|
+
expected_groups.count.should == available_groups.count
|
17
|
+
|
18
|
+
# Verify each of the expected groups has a file list container and corresponding title and coverage number
|
19
|
+
# as well as the correct number of links to files.
|
20
|
+
expected_groups.each do |group|
|
21
|
+
with_scope "#content ##{group["name"].gsub(/[^a-z]/i, '')}.file_list_container" do
|
22
|
+
file_count_in_group = page.all('a.src_link').count
|
23
|
+
file_count_in_group.should == group["files"].to_i
|
24
|
+
|
25
|
+
with_scope "h2" do
|
26
|
+
page.should have_content(group["name"])
|
27
|
+
page.should have_content(group["coverage"])
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
Then /^I should see the source files:$/ do |table|
|
34
|
+
expected_files = table.hashes
|
35
|
+
expected_files.length.should == available_source_files.count
|
36
|
+
|
37
|
+
# Find all filenames and their coverage present in coverage report
|
38
|
+
files = available_source_files.map {|f| {"name" => f.find('h3').text, "coverage" => f.find('.header span').text} }
|
39
|
+
|
40
|
+
files.sort_by {|hsh| hsh["name"] }.should == expected_files.sort_by {|hsh| hsh["name"] }
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# Just a shortcut to make framework setup more readable
|
2
|
+
# The test project is using separate config files to avoid specifying all of
|
3
|
+
# test/spec_helper in the features every time.
|
4
|
+
Given /^SimpleCov for (.*) is configured with:$/ do |framework, config_body|
|
5
|
+
framework_dir = case framework
|
6
|
+
when /RSpec/i
|
7
|
+
"spec"
|
8
|
+
when /Test\/Unit/i
|
9
|
+
"test"
|
10
|
+
when /Cucumber/i
|
11
|
+
"features/support"
|
12
|
+
else
|
13
|
+
raise ArgumentError, "Could not identify test framework #{framework}!"
|
14
|
+
end
|
15
|
+
|
16
|
+
steps %Q{
|
17
|
+
Given a file named "#{framework_dir}/simplecov_config.rb" with:
|
18
|
+
"""
|
19
|
+
#{config_body}
|
20
|
+
"""
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
When /^I open the coverage report generated with `([^`]+)`$/ do |command|
|
25
|
+
steps %Q{
|
26
|
+
When I successfully run `#{command}`
|
27
|
+
Then a coverage report should have been generated
|
28
|
+
When I open the coverage report
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
Then /^a coverage report should have been generated(?: in "([^"]*)")?$/ do |coverage_dir|
|
33
|
+
coverage_dir ||= 'coverage'
|
34
|
+
steps %Q{
|
35
|
+
Then the output should contain "Coverage report generated"
|
36
|
+
And a directory named "#{coverage_dir}" should exist
|
37
|
+
And the following files should exist:
|
38
|
+
| #{coverage_dir}/index.html |
|
39
|
+
| #{coverage_dir}/.resultset.json |
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
Then /^no coverage report should have been generated(?: in "([^"]*)")?$/ do |coverage_dir|
|
44
|
+
coverage_dir ||= 'coverage'
|
45
|
+
steps %Q{
|
46
|
+
Then the output should not contain "Coverage report generated"
|
47
|
+
And a directory named "#{coverage_dir}" should not exist
|
48
|
+
And the following files should not exist:
|
49
|
+
| #{coverage_dir}/index.html |
|
50
|
+
| #{coverage_dir}/.resultset.json |
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
54
|
+
Then /^the report should be based upon:$/ do |table|
|
55
|
+
frameworks = table.raw.flatten
|
56
|
+
steps %Q{
|
57
|
+
Then the output should contain "Coverage report generated for #{frameworks.join(", ")}"
|
58
|
+
And I should see "using #{frameworks.join(", ")}" within "#footer"
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#
|
2
|
+
# Enforce the alphabetical execution of specs because rspec 2+ executes them
|
3
|
+
# randomly with `rspec spec` while we need them in an accurate order for coverage
|
4
|
+
# reports that include the spec files.
|
5
|
+
#
|
6
|
+
# This is due to the fact that coverage will not include the first loaded spec/test file.
|
7
|
+
# To get predictable coverage results, we need to know which one that is...
|
8
|
+
#
|
9
|
+
Transform "bundle exec rspec spec" do |t|
|
10
|
+
files = nil # Avoid shadowing
|
11
|
+
in_current_dir { files = Dir['spec/**/*_spec.rb'] }
|
12
|
+
"bundle exec rspec #{files.sort.join(' ')}"
|
13
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module WithinHelpers
|
2
|
+
def with_scope(locator)
|
3
|
+
locator ? within(locator) { yield } : yield
|
4
|
+
end
|
5
|
+
end
|
6
|
+
World(WithinHelpers)
|
7
|
+
|
8
|
+
When /^I open the coverage report$/ do
|
9
|
+
visit '/'
|
10
|
+
end
|
11
|
+
|
12
|
+
Given /^(?:|I )am on (.+)$/ do |path|
|
13
|
+
visit path
|
14
|
+
end
|
15
|
+
|
16
|
+
When /^(?:|I )go to (.+)$/ do |path|
|
17
|
+
visit path
|
18
|
+
end
|
19
|
+
|
20
|
+
When /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/ do |button, selector|
|
21
|
+
with_scope(selector) do
|
22
|
+
click_button(button)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector|
|
27
|
+
with_scope(selector) do
|
28
|
+
click_link(link)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
|
33
|
+
with_scope(selector) do
|
34
|
+
page.should have_content(text)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
|
39
|
+
regexp = Regexp.new(regexp)
|
40
|
+
with_scope(selector) do
|
41
|
+
page.should have_xpath('//*', :text => regexp)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
Then /^(?:|I )should not see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
|
46
|
+
with_scope(selector) do
|
47
|
+
page.should have_no_content(text)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
|
52
|
+
regexp = Regexp.new(regexp)
|
53
|
+
with_scope(selector) do
|
54
|
+
page.should have_no_xpath('//*', :text => regexp)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
Then /^show me the page$/ do
|
59
|
+
save_and_open_page
|
60
|
+
end
|
61
|
+
|
62
|
+
Then /^print the page$/ do
|
63
|
+
puts page.body
|
64
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
unless RUBY_VERSION =~ /1\.9/
|
2
|
+
$stderr.puts "Sorry, Cucumber features are only meant to run on Ruby 1.9 for now :("
|
3
|
+
exit 0
|
4
|
+
end
|
5
|
+
|
6
|
+
require 'bundler'
|
7
|
+
Bundler.setup
|
8
|
+
require 'aruba/cucumber'
|
9
|
+
require 'capybara/cucumber'
|
10
|
+
|
11
|
+
# Fake rack app for capybara that just returns the latest coverage report from aruba temp project dir
|
12
|
+
Capybara.app = lambda {|env|
|
13
|
+
[200, {'Content-Type' => 'text/html'},
|
14
|
+
[File.read(File.join(File.dirname(__FILE__), '../../tmp/aruba/project', 'coverage/index.html'))]]
|
15
|
+
}
|
16
|
+
|
17
|
+
Before do
|
18
|
+
@aruba_timeout_seconds = 20
|
19
|
+
this_dir = File.dirname(__FILE__)
|
20
|
+
# Clean up and create blank state for fake project
|
21
|
+
in_current_dir do
|
22
|
+
FileUtils.rm_rf 'project'
|
23
|
+
FileUtils.cp_r File.join(this_dir, '../../test/faked_project/'), 'project'
|
24
|
+
end
|
25
|
+
Given 'I cd to "project"'
|
26
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
@test_unit
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Simply adding the basic simplecov lines to a project should get
|
5
|
+
the user a coverage report after running `rake test`
|
6
|
+
|
7
|
+
Scenario:
|
8
|
+
Given SimpleCov for Test/Unit is configured with:
|
9
|
+
"""
|
10
|
+
require 'simplecov'
|
11
|
+
SimpleCov.start
|
12
|
+
"""
|
13
|
+
|
14
|
+
When I open the coverage report generated with `bundle exec rake test`
|
15
|
+
Then I should see the groups:
|
16
|
+
| name | coverage | files |
|
17
|
+
| All Files | 91.53% | 6 |
|
18
|
+
|
19
|
+
And I should see the source files:
|
20
|
+
| name | coverage |
|
21
|
+
| lib/faked_project.rb | 100.0 % |
|
22
|
+
| lib/faked_project/some_class.rb | 80.0 % |
|
23
|
+
| lib/faked_project/framework_specific.rb | 75.0 % |
|
24
|
+
| lib/faked_project/meta_magic.rb | 100.0 % |
|
25
|
+
| test/meta_magic_test.rb | 100.0 % |
|
26
|
+
| test/some_class_test.rb | 100.0 % |
|
27
|
+
|
28
|
+
# Note: faked_test.rb is not appearing here since that's the first unit test file
|
29
|
+
# loaded by Rake, and only there test_helper is required, which then loads simplecov
|
30
|
+
# and triggers tracking of all other loaded files! Solution for this would be to
|
31
|
+
# configure simplecov in this first test instead of test_helper.
|
32
|
+
|
33
|
+
And the report should be based upon:
|
34
|
+
| Unit Tests |
|
@@ -0,0 +1,29 @@
|
|
1
|
+
@test_unit
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Defining some groups and filters should give a corresponding
|
5
|
+
coverage report that respects those settings after running tests
|
6
|
+
|
7
|
+
Scenario:
|
8
|
+
Given SimpleCov for Test/Unit is configured with:
|
9
|
+
"""
|
10
|
+
require 'simplecov'
|
11
|
+
SimpleCov.start do
|
12
|
+
add_group 'Libs', 'lib/faked_project/'
|
13
|
+
add_filter '/test/'
|
14
|
+
end
|
15
|
+
"""
|
16
|
+
|
17
|
+
When I open the coverage report generated with `bundle exec rake test`
|
18
|
+
Then I should see the groups:
|
19
|
+
| name | coverage | files |
|
20
|
+
| All Files | 88.37% | 4 |
|
21
|
+
| Libs | 86.11% | 3 |
|
22
|
+
| Ungrouped | 100.0% | 1 |
|
23
|
+
|
24
|
+
And I should see the source files:
|
25
|
+
| name | coverage |
|
26
|
+
| lib/faked_project.rb | 100.0 % |
|
27
|
+
| lib/faked_project/some_class.rb | 80.0 % |
|
28
|
+
| lib/faked_project/framework_specific.rb | 75.0 % |
|
29
|
+
| lib/faked_project/meta_magic.rb | 100.0 % |
|
@@ -0,0 +1,35 @@
|
|
1
|
+
@test_unit
|
2
|
+
Feature: Sophisticated grouping and filtering on Test/Unit
|
3
|
+
|
4
|
+
Defining groups and filters can be done by passing blocks or strings.
|
5
|
+
Blocks get each SimpleCov::SourceFile instance passed an can use arbitrary
|
6
|
+
and potentially weird conditions to remove files from the report or add them
|
7
|
+
to specific groups.
|
8
|
+
|
9
|
+
Scenario:
|
10
|
+
Given SimpleCov for Test/Unit is configured with:
|
11
|
+
"""
|
12
|
+
require 'simplecov'
|
13
|
+
SimpleCov.start do
|
14
|
+
add_group 'By block' do |src_file|
|
15
|
+
src_file.filename =~ /MaGiC/i
|
16
|
+
end
|
17
|
+
add_group 'By string', 'project/meta_magic'
|
18
|
+
|
19
|
+
add_filter 'faked_project.rb'
|
20
|
+
# Remove all files that include "describe" in their source
|
21
|
+
add_filter {|src_file| src_file.lines.any? {|line| line.src =~ /TestCase/ } }
|
22
|
+
add_filter {|src_file| src_file.covered_percent < 100 }
|
23
|
+
end
|
24
|
+
"""
|
25
|
+
|
26
|
+
When I open the coverage report generated with `bundle exec rake test`
|
27
|
+
Then I should see the groups:
|
28
|
+
| name | coverage | files |
|
29
|
+
| All Files | 100.0% | 1 |
|
30
|
+
| By block | 100.0% | 1 |
|
31
|
+
| By string | 100.0% | 1 |
|
32
|
+
|
33
|
+
And I should see the source files:
|
34
|
+
| name | coverage |
|
35
|
+
| lib/faked_project/meta_magic.rb | 100.0 % |
|
@@ -0,0 +1,20 @@
|
|
1
|
+
@test_unit
|
2
|
+
Feature:
|
3
|
+
|
4
|
+
Running unit tests without simplecov configuration
|
5
|
+
|
6
|
+
Scenario: No config at all
|
7
|
+
When I successfully run `bundle exec rake test`
|
8
|
+
Then no coverage report should have been generated
|
9
|
+
|
10
|
+
Scenario: Configured, but not started
|
11
|
+
Given SimpleCov for Test/Unit is configured with:
|
12
|
+
"""
|
13
|
+
require 'simplecov'
|
14
|
+
SimpleCov.configure do
|
15
|
+
add_filter 'somefilter'
|
16
|
+
end
|
17
|
+
"""
|
18
|
+
|
19
|
+
When I successfully run `bundle exec rake test`
|
20
|
+
Then no coverage report should have been generated
|