Skip to content

[FEATURE] Count unit tests from every module in code coverage, so codecov/patch is not 0% for code tested from another module #5890

Closed

Description

@LantaoJin

Is your feature request related to a problem?
JaCoCo coverage is collected and reported per Gradle module, and CI uploads the 12 per-module jacocoTestReport.xml files to Codecov. A class therefore gets credit only for tests in its own module. Much of core is tested from other modules, mostly from ppl's CalcitePPL*Test classes: in core's own report, CalciteRelNodeVisitor has 11 of 2,622 lines covered and JoinAndLookupUtils 14 of 55, although the ppl tests run almost all of them.

So codecov/patch reports 0% for well-tested changes to these classes:

Because the status is wrong for the code that changes most often, reviewers cannot use it and learn to ignore it.

What solution would you like?
One JaCoCo report that merges the unit test execution data of all modules, uploaded to Codecov instead of the per-module files:

  • Same classes as today: the classes of the 12 modules that CI uploads now, with each module's own excludes (for example core's **/ast/**), so only the hit counts change.
  • Execution data from every module's unit tests, including opensearch-sql-plugin, whose classes are not reported.
  • The per-module jacocoTestReport and jacocoTestCoverageVerification stay as they are, so no module's threshold changes meaning.

What alternatives have you considered?
keep as is.

Do you have any additional context?
No

Activity

  1. added
    enhancementNew feature or request
    infrastructureChanges to infrastructure, testing, CI/CD, pipelines, etc.
    and removed on Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestinfrastructureChanges to infrastructure, testing, CI/CD, pipelines, etc.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions