CoverageReport

A code coverage report produced after running a TDD test suite, showing the percentage of code lines, branches, and functions covered by tests.

AgileBest PracticesContinuous IntegrationExtreme ProgrammingMethodologySoftware DevelopmentTesting

Properties

Name Type Description
id string Unique identifier for the coverage report.
project string Name of the project or repository this coverage report applies to.
commit_hash string Git commit hash for which this coverage was measured.
branch string Git branch name.
build_id string CI build identifier associated with this coverage report.
summary object Overall coverage statistics for the project.
files array Per-file coverage breakdown.
generated_at string ISO 8601 timestamp when the coverage report was generated.
tool string Coverage tool used to generate the report (e.g., Istanbul, JaCoCo, coverage.py).
View JSON Schema on GitHub

JSON Schema

test-driven-development-coverage-report-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/test-driven-development/refs/heads/main/json-schema/test-driven-development-coverage-report-schema.json",
  "title": "CoverageReport",
  "description": "A code coverage report produced after running a TDD test suite, showing the percentage of code lines, branches, and functions covered by tests.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the coverage report."
    },
    "project": {
      "type": "string",
      "description": "Name of the project or repository this coverage report applies to."
    },
    "commit_hash": {
      "type": "string",
      "description": "Git commit hash for which this coverage was measured."
    },
    "branch": {
      "type": "string",
      "description": "Git branch name."
    },
    "build_id": {
      "type": "string",
      "description": "CI build identifier associated with this coverage report."
    },
    "summary": {
      "$ref": "#/$defs/CoverageSummary",
      "description": "Overall coverage statistics for the project."
    },
    "files": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/FileCoverage"
      },
      "description": "Per-file coverage breakdown."
    },
    "generated_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the coverage report was generated."
    },
    "tool": {
      "type": "string",
      "description": "Coverage tool used to generate the report (e.g., Istanbul, JaCoCo, coverage.py)."
    }
  },
  "required": ["id", "project", "summary", "generated_at"],
  "$defs": {
    "CoverageSummary": {
      "type": "object",
      "properties": {
        "lines_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Percentage of code lines covered by tests."
        },
        "branches_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Percentage of code branches covered by tests."
        },
        "functions_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Percentage of functions covered by tests."
        },
        "statements_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Percentage of statements covered by tests."
        },
        "lines_total": {
          "type": "integer",
          "description": "Total number of executable lines."
        },
        "lines_covered": {
          "type": "integer",
          "description": "Number of executable lines covered by tests."
        }
      },
      "required": ["lines_pct"]
    },
    "FileCoverage": {
      "type": "object",
      "properties": {
        "file_path": {
          "type": "string",
          "description": "Relative path to the source file."
        },
        "lines_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Line coverage percentage for this file."
        },
        "branches_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Branch coverage percentage for this file."
        }
      },
      "required": ["file_path", "lines_pct"]
    }
  }
}