From 2a119b2d384bf2cae248d6bd112a3318c773f14b Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Fri, 7 Aug 2026 09:51:38 +1200 Subject: [PATCH 1/2] Ignore integration tests from coverage --- lib/covered/config.rb | 2 +- test/covered/persist.rb | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/covered/config.rb b/lib/covered/config.rb index 481f153..0c47b64 100644 --- a/lib/covered/config.rb +++ b/lib/covered/config.rb @@ -145,7 +145,7 @@ def policy_for(paths = nil, ignore_mtime: true) # Which paths to ignore when computing coverage for a given project. # @returns [Array(String)] An array of relative paths to ignore. def ignore_paths - ["test/", "fixtures/", "spec/", "vendor/", "config/"] + ["test/", "fixtures/", "spec/", "integration/", "vendor/", "config/"] end # Which paths to include when computing coverage for a given project. diff --git a/test/covered/persist.rb b/test/covered/persist.rb index cdf5e45..45de209 100644 --- a/test/covered/persist.rb +++ b/test/covered/persist.rb @@ -26,6 +26,30 @@ describe Covered::Config do include Sus::Fixtures::TemporaryDirectoryContext + it "ignores integration test paths by default" do + FileUtils.mkdir_p(File.join(root, "integration")) + FileUtils.mkdir_p(File.join(root, "lib")) + + integration_path = File.join(root, "integration", "example.rb") + lib_path = File.join(root, "lib", "example.rb") + + File.write(integration_path, "puts :integration\n") + File.write(lib_path, "puts :lib\n") + + output = Covered::Files.new + output.add(Covered::Coverage.new(Covered::Source.new(integration_path), [nil, 1])) + output.add(Covered::Coverage.new(Covered::Source.new(lib_path), [nil, 1])) + + database_path = File.join(root, Covered::Persist::DEFAULT_PATH) + Covered::Persist.new(output, database_path).save! + + config = subject.load(root: root, reports: false) + policy = config.policy_for(database_path) + + expect(policy.to_h).to have_keys(lib_path) + expect(policy.to_h).not.to have_keys(integration_path) + end + it "loads persisted coverage using the configured policy" do FileUtils.mkdir_p(File.join(root, "config")) FileUtils.mkdir_p(File.join(root, "examples")) From 439ee3fa3f4a7a5d52a31f5aea72de7e79d6d2ff Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Fri, 7 Aug 2026 10:24:41 +1200 Subject: [PATCH 2/2] Add unreleased coverage note --- releases.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases.md b/releases.md index 09f4b7d..17ef696 100644 --- a/releases.md +++ b/releases.md @@ -1,5 +1,9 @@ # Releases +## Unreleased + + - Ignore files under `integration/` when evaluating coverage. + ## v0.29.0 - Prefer `ruby-coverage` over `coverage` for improved coverage tracking.