simplecov 0.10.0 → 0.11.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.
- checksums.yaml +7 -7
- data/.rspec +3 -1
- data/.rubocop.yml +6 -5
- data/CHANGELOG.md +16 -2
- data/Gemfile +14 -14
- data/README.md +28 -12
- data/Rakefile +5 -8
- data/features/config_formatters.feature +1 -1
- data/features/config_tracked_files.feature +29 -0
- data/features/step_definitions/transformers.rb +1 -1
- data/features/support/env.rb +6 -3
- data/lib/simplecov.rb +19 -2
- data/lib/simplecov/configuration.rb +24 -4
- data/lib/simplecov/defaults.rb +28 -5
- data/lib/simplecov/file_list.rb +11 -0
- data/lib/simplecov/filter.rb +1 -1
- data/lib/simplecov/formatter/multi_formatter.rb +17 -13
- data/lib/simplecov/result.rb +1 -1
- data/lib/simplecov/source_file.rb +6 -3
- data/lib/simplecov/version.rb +1 -1
- data/spec/1_8_fallbacks_spec.rb +29 -0
- data/spec/command_guesser_spec.rb +46 -0
- data/spec/deleted_source_spec.rb +12 -0
- data/{test → spec}/faked_project/Gemfile +0 -0
- data/{test → spec}/faked_project/Rakefile +0 -0
- data/{test → spec}/faked_project/cucumber.yml +0 -0
- data/{test → spec}/faked_project/features/step_definitions/my_steps.rb +0 -0
- data/{test → spec}/faked_project/features/support/env.rb +0 -0
- data/{test → spec}/faked_project/features/test_stuff.feature +0 -0
- data/{test → spec}/faked_project/lib/faked_project.rb +1 -1
- data/{test → spec}/faked_project/lib/faked_project/framework_specific.rb +0 -0
- data/{test → spec}/faked_project/lib/faked_project/meta_magic.rb +0 -0
- data/{test → spec}/faked_project/lib/faked_project/some_class.rb +0 -0
- data/spec/faked_project/lib/faked_project/untested_class.rb +11 -0
- data/{test → spec}/faked_project/spec/faked_spec.rb +0 -0
- data/{test → spec}/faked_project/spec/forking_spec.rb +0 -0
- data/{test → spec}/faked_project/spec/meta_magic_spec.rb +0 -0
- data/{test → spec}/faked_project/spec/some_class_spec.rb +0 -0
- data/{test → spec}/faked_project/spec/spec_helper.rb +0 -0
- data/{test → spec}/faked_project/test/faked_test.rb +0 -0
- data/{test → spec}/faked_project/test/meta_magic_test.rb +0 -0
- data/{test → spec}/faked_project/test/some_class_test.rb +0 -0
- data/{test → spec}/faked_project/test/test_helper.rb +0 -0
- data/spec/file_list_spec.rb +48 -0
- data/spec/filters_spec.rb +96 -0
- data/{test → spec}/fixtures/app/controllers/sample_controller.rb +0 -0
- data/{test → spec}/fixtures/app/models/user.rb +0 -0
- data/{test → spec}/fixtures/deleted_source_sample.rb +0 -0
- data/{test → spec}/fixtures/frameworks/rspec_bad.rb +0 -0
- data/{test → spec}/fixtures/frameworks/rspec_good.rb +0 -0
- data/{test → spec}/fixtures/frameworks/testunit_bad.rb +0 -0
- data/{test → spec}/fixtures/frameworks/testunit_good.rb +0 -0
- data/{test → spec}/fixtures/iso-8859.rb +0 -0
- data/{test → spec}/fixtures/resultset1.rb +0 -0
- data/{test → spec}/fixtures/resultset2.rb +0 -0
- data/{test → spec}/fixtures/sample.rb +0 -0
- data/{test → spec}/fixtures/utf-8.rb +0 -0
- data/{test → spec}/helper.rb +3 -7
- data/spec/merge_helpers_spec.rb +108 -0
- data/spec/result_spec.rb +207 -0
- data/spec/return_codes_spec.rb +37 -0
- data/spec/source_file_line_spec.rb +153 -0
- data/spec/source_file_spec.rb +75 -0
- metadata +163 -149
- data/test/shoulda_macros.rb +0 -19
- data/test/test_1_8_fallbacks.rb +0 -31
- data/test/test_command_guesser.rb +0 -19
- data/test/test_deleted_source.rb +0 -14
- data/test/test_file_list.rb +0 -23
- data/test/test_filters.rb +0 -94
- data/test/test_merge_helpers.rb +0 -112
- data/test/test_result.rb +0 -175
- data/test/test_return_codes.rb +0 -41
- data/test/test_source_file.rb +0 -73
- data/test/test_source_file_line.rb +0 -106
data/test/test_return_codes.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
# Make sure that exit codes of tests are propagated properly when using
|
4
|
-
# simplecov. See github issue #5
|
5
|
-
class TestReturnCodes < Minitest::Test
|
6
|
-
def self.test_order
|
7
|
-
:alpha
|
8
|
-
end
|
9
|
-
|
10
|
-
context "Inside fixtures/frameworks" do
|
11
|
-
setup do
|
12
|
-
@current_dir = Dir.getwd
|
13
|
-
Dir.chdir(File.join(File.dirname(__FILE__), "fixtures", "frameworks"))
|
14
|
-
FileUtils.rm_rf("./coverage")
|
15
|
-
end
|
16
|
-
|
17
|
-
should "have return code 0 when running testunit_good.rb" do
|
18
|
-
`ruby testunit_good.rb`
|
19
|
-
assert_equal 0, $?.exitstatus
|
20
|
-
end
|
21
|
-
|
22
|
-
should "have return code 0 when running rspec_good.rb" do
|
23
|
-
`rspec rspec_good.rb`
|
24
|
-
assert_equal 0, $?.exitstatus
|
25
|
-
end
|
26
|
-
|
27
|
-
should "have non-0 return code when running testunit_bad.rb" do
|
28
|
-
`ruby testunit_bad.rb`
|
29
|
-
refute_equal 0, $?.exitstatus
|
30
|
-
end
|
31
|
-
|
32
|
-
should "have return code 1 when running rspec_bad.rb" do
|
33
|
-
`rspec rspec_bad.rb`
|
34
|
-
refute_equal 0, $?.exitstatus
|
35
|
-
end
|
36
|
-
|
37
|
-
teardown do
|
38
|
-
Dir.chdir(@current_dir)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
data/test/test_source_file.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
class TestSourceFile < Minitest::Test
|
4
|
-
COVERAGE_FOR_SAMPLE_RB = [nil, 1, 1, 1, nil, nil, 1, 0, nil, nil, nil, nil, nil, nil, nil, nil]
|
5
|
-
context "A source file initialized with some coverage data" do
|
6
|
-
setup do
|
7
|
-
@source_file = SimpleCov::SourceFile.new(source_fixture("sample.rb"), COVERAGE_FOR_SAMPLE_RB)
|
8
|
-
end
|
9
|
-
|
10
|
-
should "have a filename" do
|
11
|
-
assert @source_file.filename
|
12
|
-
end
|
13
|
-
|
14
|
-
should "have source equal to src" do
|
15
|
-
assert_equal @source_file.source, @source_file.src
|
16
|
-
end
|
17
|
-
|
18
|
-
should "have source_lines equal to lines" do
|
19
|
-
assert_equal @source_file.source_lines, @source_file.lines
|
20
|
-
end
|
21
|
-
|
22
|
-
should "have 16 source lines" do
|
23
|
-
assert_equal 16, @source_file.lines.count
|
24
|
-
end
|
25
|
-
|
26
|
-
should "have all source lines of type SimpleCov::SourceFile::Line" do
|
27
|
-
assert @source_file.lines.all? { |l| l.instance_of?(SimpleCov::SourceFile::Line) }
|
28
|
-
end
|
29
|
-
|
30
|
-
should "have 'class Foo' as line(2).source" do
|
31
|
-
assert_equal "class Foo\n", @source_file.line(2).source
|
32
|
-
end
|
33
|
-
|
34
|
-
should "return lines number 2, 3, 4, 7 for covered_lines" do
|
35
|
-
assert_equal [2, 3, 4, 7], @source_file.covered_lines.map(&:line)
|
36
|
-
end
|
37
|
-
|
38
|
-
should "return lines number 8 for missed_lines" do
|
39
|
-
assert_equal [8], @source_file.missed_lines.map(&:line)
|
40
|
-
end
|
41
|
-
|
42
|
-
should "return lines number 1, 5, 6, 9, 10, 11, 15, 16 for never_lines" do
|
43
|
-
assert_equal [1, 5, 6, 9, 10, 11, 15, 16], @source_file.never_lines.map(&:line)
|
44
|
-
end
|
45
|
-
|
46
|
-
should "return line numbers 12, 13, 14 for skipped_lines" do
|
47
|
-
assert_equal [12, 13, 14], @source_file.skipped_lines.map(&:line)
|
48
|
-
end
|
49
|
-
|
50
|
-
should "have 80% covered_percent" do
|
51
|
-
assert_equal 80.0, @source_file.covered_percent
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
context "Simulating potential Ruby 1.9 defect -- see Issue #56" do
|
56
|
-
setup do
|
57
|
-
@source_file = SimpleCov::SourceFile.new(source_fixture("sample.rb"), COVERAGE_FOR_SAMPLE_RB + [nil])
|
58
|
-
end
|
59
|
-
|
60
|
-
should "have 16 source lines regardless of extra data in coverage array" do
|
61
|
-
# Do not litter test output with known warning
|
62
|
-
capture_stderr { assert_equal 16, @source_file.lines.count }
|
63
|
-
end
|
64
|
-
|
65
|
-
should "print a warning to stderr if coverage array contains more data than lines in the file" do
|
66
|
-
captured_output = capture_stderr do
|
67
|
-
@source_file.lines
|
68
|
-
end
|
69
|
-
|
70
|
-
assert_match(/^Warning: coverage data provided/, captured_output)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end if SimpleCov.usable?
|
@@ -1,106 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
class TestSourceFileLine < Minitest::Test
|
4
|
-
context "A source line" do
|
5
|
-
setup do
|
6
|
-
@line = SimpleCov::SourceFile::Line.new("# the ruby source", 5, 3)
|
7
|
-
end
|
8
|
-
subject { @line }
|
9
|
-
|
10
|
-
should 'return "# the ruby source" as src' do
|
11
|
-
assert_equal "# the ruby source", @line.src
|
12
|
-
end
|
13
|
-
|
14
|
-
should "return the same for source as for src" do
|
15
|
-
assert_equal @line.src, @line.source
|
16
|
-
end
|
17
|
-
|
18
|
-
should "have line number 5" do
|
19
|
-
assert_equal 5, @line.line_number
|
20
|
-
end
|
21
|
-
|
22
|
-
should "have equal line_number, line and number" do
|
23
|
-
assert_equal @line.line_number, @line.line
|
24
|
-
assert_equal @line.line_number, @line.number
|
25
|
-
end
|
26
|
-
|
27
|
-
context "flagged as skipped!" do
|
28
|
-
setup { @line.skipped! }
|
29
|
-
|
30
|
-
should_not_be :covered?
|
31
|
-
should_be :skipped?
|
32
|
-
should_not_be :missed?
|
33
|
-
should_not_be :never?
|
34
|
-
should_have :status, "skipped"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
context "A source line with coverage" do
|
39
|
-
setup do
|
40
|
-
@line = SimpleCov::SourceFile::Line.new("# the ruby source", 5, 3)
|
41
|
-
end
|
42
|
-
subject { @line }
|
43
|
-
|
44
|
-
should "have coverage of 3" do
|
45
|
-
assert_equal 3, @line.coverage
|
46
|
-
end
|
47
|
-
|
48
|
-
should_be :covered?
|
49
|
-
should_not_be :skipped?
|
50
|
-
should_not_be :missed?
|
51
|
-
should_not_be :never?
|
52
|
-
should_have :status, "covered"
|
53
|
-
end
|
54
|
-
|
55
|
-
context "A source line without coverage" do
|
56
|
-
setup do
|
57
|
-
@line = SimpleCov::SourceFile::Line.new("# the ruby source", 5, 0)
|
58
|
-
end
|
59
|
-
subject { @line }
|
60
|
-
|
61
|
-
should "have coverage of 0" do
|
62
|
-
assert_equal 0, @line.coverage
|
63
|
-
end
|
64
|
-
|
65
|
-
should_not_be :covered?
|
66
|
-
should_not_be :skipped?
|
67
|
-
should_be :missed?
|
68
|
-
should_not_be :never?
|
69
|
-
should_have :status, "missed"
|
70
|
-
end
|
71
|
-
|
72
|
-
context "A source line with no code" do
|
73
|
-
setup do
|
74
|
-
@line = SimpleCov::SourceFile::Line.new("# the ruby source", 5, nil)
|
75
|
-
end
|
76
|
-
subject { @line }
|
77
|
-
|
78
|
-
should "have nil coverage" do
|
79
|
-
assert_nil @line.coverage
|
80
|
-
end
|
81
|
-
|
82
|
-
should_not_be :covered?
|
83
|
-
should_not_be :skipped?
|
84
|
-
should_not_be :missed?
|
85
|
-
should_be :never?
|
86
|
-
should_have :status, "never"
|
87
|
-
end
|
88
|
-
|
89
|
-
should "raise ArgumentError when initialized with invalid src" do
|
90
|
-
assert_raises ArgumentError do
|
91
|
-
SimpleCov::SourceFile::Line.new(:symbol, 5, 3)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
should "raise ArgumentError when initialized with invalid line_number" do
|
96
|
-
assert_raises ArgumentError do
|
97
|
-
SimpleCov::SourceFile::Line.new("some source", "five", 3)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
should "raise ArgumentError when initialized with invalid coverage" do
|
102
|
-
assert_raises ArgumentError do
|
103
|
-
SimpleCov::SourceFile::Line.new("some source", 5, "three")
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end if SimpleCov.usable?
|