Skip to content

Java API to parse and collect code coverage results

License

Notifications You must be signed in to change notification settings

jenkinsci/coverage-model

Repository files navigation

Code coverage model

Join the chat at Gitter/Matrix Jenkins CI on all platforms CodeQL Line Coverage Branch Coverage Mutation Coverage

This library Provides a Java API to parse and collect code coverage results. It is used by my Jenkins' coverage plug-in to visualize the coverage of individual builds.

Jenkins Coverage Plug-in Overview Jenkins Coverage Plug-in Files

Additionally, this library is used by my additional Quality Monitor GitHub Action, that monitors the quality of projects based on a configurable set of metrics and gives feedback on pull requests (or single commits) in GitHub. There are also two additional actions available, to autograde student software projects based on these metrics: GitHub Autograding action and GitLab Autograding action.

Quality Monitor GitHub Action

This library consists basically of two separate parts:

  1. A model to manage several metrics in a software project. Supported metrics are code coverage (line, branch, instruction), mutation coverage, test strength, number of tests, lines of code, and cyclomatic complexity.
  2. Parsers for several code coverage formats:
    • JaCoCo code coverage results
    • Cobertura code coverage results
    • OpenCover code coverage results
    • VectorCAST code coverage results including MC/DC, Function, Function Call coverages
    • PIT Mutation coverage results
    • JUnit test results
    • NUnit test results
    • XUnit test results
    • Metrics XML report

All source code is licensed under the MIT license. Contributions to this library are welcome!