simplecov 0.15.0 → 0.16.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.
Files changed (134) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +26 -2
  3. data/CONTRIBUTING.md +12 -9
  4. data/ISSUE_TEMPLATE.md +23 -0
  5. data/README.md +42 -16
  6. data/doc/alternate-formatters.md +16 -1
  7. data/lib/simplecov/command_guesser.rb +2 -0
  8. data/lib/simplecov/configuration.rb +2 -0
  9. data/lib/simplecov/defaults.rb +9 -80
  10. data/lib/simplecov/exit_codes.rb +2 -0
  11. data/lib/simplecov/file_list.rb +2 -0
  12. data/lib/simplecov/filter.rb +3 -1
  13. data/lib/simplecov/formatter/multi_formatter.rb +2 -0
  14. data/lib/simplecov/formatter/simple_formatter.rb +2 -0
  15. data/lib/simplecov/formatter.rb +2 -0
  16. data/lib/simplecov/jruby_fix.rb +2 -0
  17. data/lib/simplecov/last_run.rb +2 -0
  18. data/lib/simplecov/lines_classifier.rb +19 -3
  19. data/lib/simplecov/load_global_config.rb +2 -0
  20. data/lib/simplecov/no_defaults.rb +2 -0
  21. data/lib/simplecov/profiles/bundler_filter.rb +5 -0
  22. data/lib/simplecov/profiles/rails.rb +18 -0
  23. data/lib/simplecov/profiles/root_filter.rb +10 -0
  24. data/lib/simplecov/profiles/test_frameworks.rb +8 -0
  25. data/lib/simplecov/profiles.rb +2 -0
  26. data/lib/simplecov/railtie.rb +2 -0
  27. data/lib/simplecov/railties/tasks.rake +2 -0
  28. data/lib/simplecov/raw_coverage.rb +2 -0
  29. data/lib/simplecov/result.rb +2 -0
  30. data/lib/simplecov/result_merger.rb +2 -0
  31. data/lib/simplecov/source_file.rb +3 -1
  32. data/lib/simplecov/version.rb +3 -1
  33. data/lib/simplecov.rb +91 -0
  34. metadata +22 -117
  35. data/.gitignore +0 -31
  36. data/.rspec +0 -3
  37. data/.rubocop.yml +0 -88
  38. data/.travis.yml +0 -29
  39. data/.yardopts +0 -1
  40. data/Gemfile +0 -38
  41. data/MIT-LICENSE +0 -20
  42. data/Rakefile +0 -41
  43. data/cucumber.yml +0 -13
  44. data/features/config_autoload.feature +0 -46
  45. data/features/config_command_name.feature +0 -45
  46. data/features/config_coverage_dir.feature +0 -33
  47. data/features/config_deactivate_merging.feature +0 -42
  48. data/features/config_formatters.feature +0 -77
  49. data/features/config_merge_timeout.feature +0 -39
  50. data/features/config_nocov_token.feature +0 -79
  51. data/features/config_profiles.feature +0 -44
  52. data/features/config_project_name.feature +0 -27
  53. data/features/config_styles.feature +0 -121
  54. data/features/config_tracked_files.feature +0 -29
  55. data/features/config_tracked_files_relevant_lines.feature +0 -31
  56. data/features/cucumber_basic.feature +0 -29
  57. data/features/maximum_coverage_drop.feature +0 -89
  58. data/features/merging_test_unit_and_rspec.feature +0 -44
  59. data/features/minimum_coverage.feature +0 -59
  60. data/features/refuse_coverage_drop.feature +0 -95
  61. data/features/rspec_basic.feature +0 -32
  62. data/features/rspec_fails_on_initialization.feature +0 -14
  63. data/features/rspec_groups_and_filters_basic.feature +0 -29
  64. data/features/rspec_groups_and_filters_complex.feature +0 -37
  65. data/features/rspec_groups_using_filter_class.feature +0 -41
  66. data/features/rspec_without_simplecov.feature +0 -20
  67. data/features/skipping_code_blocks_manually.feature +0 -70
  68. data/features/step_definitions/html_steps.rb +0 -44
  69. data/features/step_definitions/simplecov_steps.rb +0 -68
  70. data/features/step_definitions/transformers.rb +0 -13
  71. data/features/step_definitions/web_steps.rb +0 -64
  72. data/features/support/aruba_freedom_patch.rb +0 -53
  73. data/features/support/env.rb +0 -50
  74. data/features/test_unit_basic.feature +0 -34
  75. data/features/test_unit_groups_and_filters_basic.feature +0 -29
  76. data/features/test_unit_groups_and_filters_complex.feature +0 -35
  77. data/features/test_unit_groups_using_filter_class.feature +0 -40
  78. data/features/test_unit_without_simplecov.feature +0 -20
  79. data/features/unicode_compatiblity.feature +0 -67
  80. data/simplecov.gemspec +0 -27
  81. data/spec/1_8_fallbacks_spec.rb +0 -31
  82. data/spec/command_guesser_spec.rb +0 -48
  83. data/spec/config_loader_spec.rb +0 -14
  84. data/spec/configuration_spec.rb +0 -35
  85. data/spec/deleted_source_spec.rb +0 -12
  86. data/spec/faked_project/Gemfile +0 -6
  87. data/spec/faked_project/Rakefile +0 -8
  88. data/spec/faked_project/cucumber.yml +0 -13
  89. data/spec/faked_project/features/step_definitions/my_steps.rb +0 -22
  90. data/spec/faked_project/features/support/env.rb +0 -12
  91. data/spec/faked_project/features/test_stuff.feature +0 -6
  92. data/spec/faked_project/lib/faked_project/framework_specific.rb +0 -18
  93. data/spec/faked_project/lib/faked_project/meta_magic.rb +0 -24
  94. data/spec/faked_project/lib/faked_project/some_class.rb +0 -28
  95. data/spec/faked_project/lib/faked_project/untested_class.rb +0 -11
  96. data/spec/faked_project/lib/faked_project.rb +0 -11
  97. data/spec/faked_project/spec/faked_spec.rb +0 -11
  98. data/spec/faked_project/spec/forking_spec.rb +0 -8
  99. data/spec/faked_project/spec/meta_magic_spec.rb +0 -15
  100. data/spec/faked_project/spec/some_class_spec.rb +0 -13
  101. data/spec/faked_project/spec/spec_helper.rb +0 -11
  102. data/spec/faked_project/test/faked_test.rb +0 -11
  103. data/spec/faked_project/test/meta_magic_test.rb +0 -13
  104. data/spec/faked_project/test/some_class_test.rb +0 -15
  105. data/spec/faked_project/test/test_helper.rb +0 -12
  106. data/spec/file_list_spec.rb +0 -50
  107. data/spec/filters_spec.rb +0 -172
  108. data/spec/fixtures/app/controllers/sample_controller.rb +0 -10
  109. data/spec/fixtures/app/models/user.rb +0 -10
  110. data/spec/fixtures/deleted_source_sample.rb +0 -15
  111. data/spec/fixtures/frameworks/rspec_bad.rb +0 -9
  112. data/spec/fixtures/frameworks/rspec_good.rb +0 -9
  113. data/spec/fixtures/frameworks/testunit_bad.rb +0 -9
  114. data/spec/fixtures/frameworks/testunit_good.rb +0 -9
  115. data/spec/fixtures/iso-8859.rb +0 -3
  116. data/spec/fixtures/never.rb +0 -2
  117. data/spec/fixtures/resultset1.rb +0 -4
  118. data/spec/fixtures/resultset2.rb +0 -4
  119. data/spec/fixtures/sample.rb +0 -16
  120. data/spec/fixtures/skipped.rb +0 -4
  121. data/spec/fixtures/skipped_and_executed.rb +0 -8
  122. data/spec/fixtures/utf-8.rb +0 -3
  123. data/spec/helper.rb +0 -26
  124. data/spec/last_run_spec.rb +0 -48
  125. data/spec/lines_classifier_spec.rb +0 -103
  126. data/spec/multi_formatter_spec.rb +0 -20
  127. data/spec/raw_coverage_spec.rb +0 -92
  128. data/spec/result_merger_spec.rb +0 -171
  129. data/spec/result_spec.rb +0 -209
  130. data/spec/return_codes_spec.rb +0 -34
  131. data/spec/simplecov_spec.rb +0 -109
  132. data/spec/source_file_line_spec.rb +0 -155
  133. data/spec/source_file_spec.rb +0 -145
  134. data/spec/support/fail_rspec_on_ruby_warning.rb +0 -75
@@ -1,64 +0,0 @@
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
- expect(page).to 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
- expect(page).to 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
- expect(page).to 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
- expect(page).to have_no_xpath("//*", :text => regexp)
55
- end
56
- end
57
-
58
- Then /^show me the page$/ do
59
- save_and_open_page # rubocop:disable Lint/Debugger
60
- end
61
-
62
- Then /^print the page$/ do
63
- puts page.body
64
- end
@@ -1,53 +0,0 @@
1
- # Freedom patch because of not working absolute directories, see: https://github.com/cucumber/aruba/issues/478
2
- # code taken directly from aruba 0.14.2 - roughly here: https://github.com/cucumber/aruba/blob/master/lib/aruba/api/core.rb#L122-L159
3
- # rubocop:disable all
4
- module Aruba
5
- module Api
6
- module Core
7
- def expand_path(file_name, dir_string = nil)
8
- # only line added, don't ask why but I couldn't get alias_method to work...
9
- return file_name if absolute?(file_name)
10
- check_for_deprecated_variables if Aruba::VERSION < '1'
11
-
12
- message = %(Filename "#{file_name}" needs to be a string. It cannot be nil or empty either. Please use `expand_path('.')` if you want the current directory to be expanded.)
13
-
14
- fail ArgumentError, message unless file_name.is_a?(String) && !file_name.empty?
15
-
16
- aruba.logger.warn %(`aruba`'s working directory does not exist. Maybe you forgot to run `setup_aruba` before using it's API. This warning will be an error from 1.0.0) unless Aruba.platform.directory? File.join(aruba.config.root_directory, aruba.config.working_directory)
17
-
18
- if RUBY_VERSION < '1.9'
19
- prefix = file_name.chars.to_a[0].to_s
20
- rest = if file_name.chars.to_a[2..-1].nil?
21
- nil
22
- else
23
- file_name.chars.to_a[2..-1].join
24
- end
25
- else
26
- prefix = file_name[0]
27
- rest = file_name[2..-1]
28
- end
29
-
30
- if aruba.config.fixtures_path_prefix == prefix
31
- path = File.join(*[aruba.fixtures_directory, rest].compact)
32
-
33
- fail ArgumentError, %(Fixture "#{rest}" does not exist in fixtures directory "#{aruba.fixtures_directory}". This was the one we found first on your system from all possible candidates: #{aruba.config.fixtures_directories.map { |p| format('"%s"', p) }.join(', ')}.) unless Aruba.platform.exist? path
34
-
35
- path
36
- elsif '~' == prefix
37
- path = with_environment do
38
- ArubaPath.new(File.expand_path(file_name))
39
- end
40
-
41
- fail ArgumentError, 'Expanding "~/" to "/" is not allowed' if path.to_s == '/'
42
- fail ArgumentError, %(Expanding "~/" to a relative path "#{path}" is not allowed) unless path.absolute?
43
-
44
- path.to_s
45
- else
46
- directory = File.join(aruba.root_directory, aruba.current_directory)
47
- ArubaPath.new(File.join(*[directory, dir_string, file_name].compact)).expand_path.to_s
48
- end
49
- end
50
- end
51
- end
52
- end
53
- # rubocop:enable all
@@ -1,50 +0,0 @@
1
- if RUBY_VERSION < "1.9"
2
- $stderr.puts "Sorry, Cucumber features are only meant to run on Ruby 1.9+ :("
3
- exit 0
4
- end
5
-
6
- require "bundler"
7
- Bundler.setup
8
- require "aruba/cucumber"
9
- require "aruba/config/jruby" if RUBY_ENGINE == "jruby"
10
- require_relative "aruba_freedom_patch"
11
- require "capybara/cucumber"
12
- require "phantomjs/poltergeist"
13
-
14
- # Fake rack app for capybara that just returns the latest coverage report from aruba temp project dir
15
- Capybara.app = lambda { |env|
16
- request_path = env["REQUEST_PATH"] || "/"
17
- request_path = "/index.html" if request_path == "/"
18
- [
19
- 200,
20
- {"Content-Type" => "text/html"},
21
- [File.read(File.join(File.dirname(__FILE__), "../../tmp/aruba/project/coverage", request_path))],
22
- ]
23
- }
24
-
25
- Capybara.default_driver = Capybara.javascript_driver = :poltergeist
26
-
27
- Capybara.configure do |config|
28
- config.ignore_hidden_elements = false
29
- end
30
-
31
- Before do
32
- # JRuby takes it's time... See https://github.com/cucumber/aruba/issues/134
33
- @aruba_timeout_seconds = RUBY_ENGINE == "jruby" ? 60 : 20
34
-
35
- this_dir = File.dirname(__FILE__)
36
-
37
- # Clean up and create blank state for fake project
38
- cd(".") do
39
- FileUtils.rm_rf "project"
40
- FileUtils.cp_r File.join(this_dir, "../../spec/faked_project/"), "project"
41
- end
42
-
43
- step 'I cd to "project"'
44
- end
45
-
46
- # Workaround for https://github.com/cucumber/aruba/pull/125
47
- Aruba.configure do |config|
48
- config.exit_timeout = RUBY_ENGINE == "jruby" ? 60 : 20
49
- config.command_runtime_environment = {"JRUBY_OPTS" => "--dev --debug"}
50
- end
@@ -1,34 +0,0 @@
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.38% | 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 |
@@ -1,29 +0,0 @@
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.1% | 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 % |
@@ -1,35 +0,0 @@
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 % |
@@ -1,40 +0,0 @@
1
- @test_unit
2
- Feature: Grouping on Test/Unit using a custom filter class
3
-
4
- Next to passing a block or a string to define a group, you can also pass
5
- a filter class. The filter class inherits from SimpleCov::Filter and
6
- must implement the matches? method, which is used to determine whether
7
- or not a file should be added to the group.
8
-
9
- Scenario:
10
- Given SimpleCov for Test/Unit is configured with:
11
- """
12
- require 'simplecov'
13
- class CoverageFilter < SimpleCov::Filter
14
- def matches?(source_file)
15
- source_file.covered_percent < filter_argument
16
- end
17
- end
18
- SimpleCov.start do
19
- add_group 'By filter class', CoverageFilter.new(90)
20
- add_group 'By string', 'project/meta_magic'
21
- end
22
- """
23
-
24
- When I open the coverage report generated with `bundle exec rake test`
25
- Then I should see the groups:
26
- | name | coverage | files |
27
- | All Files | 91.38% | 6 |
28
- | By filter class | 78.26% | 2 |
29
- | By string | 100.0% | 1 |
30
- | Ungrouped | 100.0% | 3 |
31
-
32
- And I should see the source files:
33
- | name | coverage |
34
- | lib/faked_project/framework_specific.rb | 75.0 % |
35
- | lib/faked_project/some_class.rb | 80.0 % |
36
- | lib/faked_project.rb | 100.0 % |
37
- | lib/faked_project/meta_magic.rb | 100.0 % |
38
- | test/meta_magic_test.rb | 100.0 % |
39
- | test/some_class_test.rb | 100.0 % |
40
-
@@ -1,20 +0,0 @@
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
@@ -1,67 +0,0 @@
1
- @test_unit @unicode
2
- Feature:
3
-
4
- Files with unicode in their source should be no problem at all for
5
- generating a proper coverage report.
6
-
7
- Background:
8
- Given SimpleCov for Test/Unit is configured with:
9
- """
10
- require 'simplecov'
11
- SimpleCov.start 'test_frameworks'
12
- """
13
-
14
- Scenario: Snowman inside method string
15
- Given a file named "lib/faked_project/unicode.rb" with:
16
- """
17
- # encoding: UTF-8
18
- class SourceCodeWithUnicode
19
- def self.yell!
20
- puts "☃"
21
- end
22
- end
23
- """
24
-
25
- When I open the coverage report generated with `bundle exec rake test`
26
- Then I should see the groups:
27
- | name | coverage | files |
28
- | All Files | 86.67% | 5 |
29
-
30
- And I should see the source files:
31
- | name | coverage |
32
- | lib/faked_project.rb | 100.0 % |
33
- | lib/faked_project/some_class.rb | 80.0 % |
34
- | lib/faked_project/framework_specific.rb | 75.0 % |
35
- | lib/faked_project/meta_magic.rb | 100.0 % |
36
- | lib/faked_project/unicode.rb | 66.67 % |
37
-
38
- And the report should be based upon:
39
- | Unit Tests |
40
-
41
- Scenario: Author name in comment
42
- Given a file named "lib/faked_project/unicode.rb" with:
43
- """
44
- # encoding: UTF-8
45
- # author: Javiér Hernández
46
- class SomeClassWrittenByAForeigner
47
- def self.yell!
48
- foo
49
- end
50
- end
51
- """
52
-
53
- When I open the coverage report generated with `bundle exec rake test`
54
- Then I should see the groups:
55
- | name | coverage | files |
56
- | All Files | 86.67% | 5 |
57
-
58
- And I should see the source files:
59
- | name | coverage |
60
- | lib/faked_project.rb | 100.0 % |
61
- | lib/faked_project/some_class.rb | 80.0 % |
62
- | lib/faked_project/framework_specific.rb | 75.0 % |
63
- | lib/faked_project/meta_magic.rb | 100.0 % |
64
- | lib/faked_project/unicode.rb | 66.67 % |
65
-
66
- And the report should be based upon:
67
- | Unit Tests |
data/simplecov.gemspec DELETED
@@ -1,27 +0,0 @@
1
- $LOAD_PATH.push File.expand_path("../lib", __FILE__)
2
- require "simplecov/version"
3
-
4
- Gem::Specification.new do |gem|
5
- gem.name = "simplecov"
6
- gem.version = SimpleCov::VERSION
7
- gem.platform = Gem::Platform::RUBY
8
- gem.authors = ["Christoph Olszowka"]
9
- gem.email = ["christoph at olszowka de"]
10
- gem.homepage = "http://github.com/colszowka/simplecov"
11
- gem.description = %(Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites)
12
- gem.summary = gem.description
13
- gem.license = "MIT"
14
-
15
- gem.required_ruby_version = ">= 1.8.7"
16
-
17
- gem.add_dependency "json", ">= 1.8", "< 3"
18
- gem.add_dependency "simplecov-html", "~> 0.10.0"
19
- gem.add_dependency "docile", "~> 1.1.0"
20
-
21
- gem.add_development_dependency "bundler", "~> 1.9"
22
-
23
- gem.files = `git ls-files`.split("\n")
24
- gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
- gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
26
- gem.require_paths = ["lib"]
27
- end
@@ -1,31 +0,0 @@
1
- require "helper"
2
-
3
- # Tests that verify that on 1.8 versions of ruby, simplecov simply
4
- # does not launch and does not cause errors on the way
5
- #
6
- # TODO: This should be expanded upon all methods that could potentially
7
- # be called in a test/spec-helper simplecov config block
8
- #
9
- if RUBY_VERSION.start_with? "1.8"
10
- describe "Ruby 1.8 fallback" do
11
- it "return false when calling SimpleCov.start" do
12
- expect(SimpleCov.start).to be false
13
- end
14
-
15
- it "return false when calling SimpleCov.start with a block" do
16
- expect(SimpleCov.start { raise "Shouldn't reach this!" }).to be false
17
- end
18
-
19
- it "return false when calling SimpleCov.configure with a block" do
20
- expect(SimpleCov.configure { raise "Shouldn't reach this!" }).to be false
21
- end
22
-
23
- it "allow to define a profile" do
24
- expect do
25
- SimpleCov.profiles.define "testprofile" do
26
- add_filter "/config/"
27
- end
28
- end.not_to raise_error
29
- end
30
- end
31
- end
@@ -1,48 +0,0 @@
1
- require "helper"
2
-
3
- if SimpleCov.usable?
4
- describe SimpleCov::CommandGuesser do
5
- subject { SimpleCov::CommandGuesser }
6
- it 'correctly guesses "Unit Tests" for unit tests' do
7
- subject.original_run_command = "/some/path/test/units/foo_bar_test.rb"
8
- expect(subject.guess).to eq("Unit Tests")
9
- subject.original_run_command = "test/units/foo.rb"
10
- expect(subject.guess).to eq("Unit Tests")
11
- subject.original_run_command = "test/foo.rb"
12
- expect(subject.guess).to eq("Unit Tests")
13
- subject.original_run_command = "test/{models,helpers,unit}/**/*_test.rb"
14
- expect(subject.guess).to eq("Unit Tests")
15
- end
16
-
17
- it 'correctly guesses "Functional Tests" for functional tests' do
18
- subject.original_run_command = "/some/path/test/functional/foo_bar_controller_test.rb"
19
- expect(subject.guess).to eq("Functional Tests")
20
- subject.original_run_command = "test/{controllers,mailers,functional}/**/*_test.rb"
21
- expect(subject.guess).to eq("Functional Tests")
22
- end
23
-
24
- it 'correctly guesses "Integration Tests" for integration tests' do
25
- subject.original_run_command = "/some/path/test/integration/foo_bar_controller_test.rb"
26
- expect(subject.guess).to eq("Integration Tests")
27
- subject.original_run_command = "test/integration/**/*_test.rb"
28
- expect(subject.guess).to eq("Integration Tests")
29
- end
30
-
31
- it 'correctly guesses "Cucumber Features" for cucumber features' do
32
- subject.original_run_command = "features"
33
- expect(subject.guess).to eq("Cucumber Features")
34
- subject.original_run_command = "cucumber"
35
- expect(subject.guess).to eq("Cucumber Features")
36
- end
37
-
38
- it 'correctly guesses "RSpec" for RSpec' do
39
- subject.original_run_command = "/some/path/spec/foo.rb"
40
- expect(subject.guess).to eq("RSpec")
41
- end
42
-
43
- it "defaults to RSpec because RSpec constant is defined" do
44
- subject.original_run_command = "some_arbitrary_command with arguments"
45
- expect(subject.guess).to eq("RSpec")
46
- end
47
- end
48
- end
@@ -1,14 +0,0 @@
1
- require "helper"
2
-
3
- describe "loading config" do
4
- context "without ENV[HOME]" do
5
- it "shouldn't raise any errors" do
6
- home = ENV.delete("HOME")
7
- begin
8
- expect { load "simplecov/load_global_config.rb" }.not_to raise_error
9
- ensure
10
- ENV["HOME"] = home
11
- end
12
- end
13
- end
14
- end
@@ -1,35 +0,0 @@
1
- require "helper"
2
-
3
- describe SimpleCov::Configuration do
4
- let(:config_class) do
5
- Class.new do
6
- include SimpleCov::Configuration
7
- end
8
- end
9
- let(:config) { config_class.new }
10
-
11
- describe "#tracked_files" do
12
- context "when configured" do
13
- let(:glob) { "{app,lib}/**/*.rb" }
14
- before { config.track_files(glob) }
15
-
16
- it "returns the configured glob" do
17
- expect(config.tracked_files).to eq glob
18
- end
19
-
20
- context "and configured again with nil" do
21
- before { config.track_files(nil) }
22
-
23
- it "returns nil" do
24
- expect(config.tracked_files).to be_nil
25
- end
26
- end
27
- end
28
-
29
- context "when unconfigured" do
30
- it "returns nil" do
31
- expect(config.tracked_files).to be_nil
32
- end
33
- end
34
- end
35
- end
@@ -1,12 +0,0 @@
1
- require "helper"
2
-
3
- # Test to verify correct handling of deleted files
4
- # See https://github.com/colszowka/simplecov/issues/9
5
- describe "A source file which is subsequently deleted" do
6
- it "does not cause an error" do
7
- Dir.chdir(File.join(File.dirname(__FILE__), "fixtures")) do
8
- `ruby deleted_source_sample.rb`
9
- expect($?.exitstatus).to be_zero
10
- end
11
- end
12
- end
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "simplecov", :path => "../../../"
4
- gem "rake"
5
- gem "rspec", ">= 2.6.0"
6
- gem "cucumber"
@@ -1,8 +0,0 @@
1
- require "bundler"
2
-
3
- require "rake/testtask"
4
- Rake::TestTask.new(:test) do |test|
5
- test.libs << "lib" << "test"
6
- test.test_files = FileList["test/**/*_test.rb"].sort
7
- test.verbose = true
8
- end
@@ -1,13 +0,0 @@
1
- <%
2
- rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
- rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
- std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} --strict --tags ~@wip"
5
- interp_opts = if defined?(RUBY_ENGINE)
6
- " --tags ~@exclude-#{RUBY_ENGINE}"
7
- else
8
- ''
9
- end
10
- %>
11
- default: <%= std_opts %><%= interp_opts %> features
12
- wip: --tags @wip:30 --wip features<%= interp_opts %>
13
- rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip<%= interp_opts %>
@@ -1,22 +0,0 @@
1
- Given /^I want to keep stuff simple$/ do
2
- expect(1).to eq(1)
3
- end
4
-
5
- When /^I write my cukes for the fake project$/ do
6
- expect(1).to eq(1)
7
- end
8
-
9
- Then /^I make all necessary tests in a single step$/ do
10
- expect(FakedProject.foo).to eq("bar")
11
-
12
- expect(FrameworkSpecific.cucumber).to eq("Only tested in Cucumber")
13
-
14
- expect(FakedProject.a_class_method).to eq("this is a mixed-in class method")
15
-
16
- expect(FakedProject.new.an_instance_method).to eq("this is a mixed-in instance method")
17
- expect(FakedProject.new.dynamic).to eq("A dynamically defined instance method")
18
-
19
- something = SomeClass.new("foo")
20
- expect(something.reverse).to eq("oof")
21
- expect(something.compare_with("foo")).to be true
22
- end
@@ -1,12 +0,0 @@
1
- require "bundler/setup"
2
-
3
- # We're injecting simplecov_config via aruba in cucumber here
4
- # depending on what the test case is...
5
- begin
6
- require File.join(File.dirname(__FILE__), "simplecov_config")
7
- rescue LoadError
8
- $stderr.puts "No SimpleCov config file found!"
9
- end
10
-
11
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "/../../lib"))
12
- require "faked_project"
@@ -1,6 +0,0 @@
1
- Feature: Foo
2
-
3
- Scenario: Test stuff
4
- Given I want to keep stuff simple
5
- When I write my cukes for the fake project
6
- Then I make all necessary tests in a single step
@@ -1,18 +0,0 @@
1
- # A pile of methods that only get tested in their frameworks
2
- # and thus make this file only 100% covered when all framework test
3
- # results are merged
4
- module FrameworkSpecific
5
- class << self
6
- def cucumber
7
- "Only tested in Cucumber"
8
- end
9
-
10
- def rspec
11
- "Only tested in RSpec"
12
- end
13
-
14
- def test_unit
15
- "Only tested in Test/Unit"
16
- end
17
- end
18
- end