Skip to content

Support report terminal output in Markdown Table format #1418

Closed
@sullivancolin

Description

@sullivancolin

The current terminal report is great, but wondered if there would be interest in adding a new output format or flag to support markdown table syntax.

This would enable nice display of coverage reports in rendered html that contains the markdown output. Some examples where this might be nice:

  1. Users could used Cog to automate the inclusion of coverage report information in documentation.
  2. GitHub actions workflow summaries could have nicely formatted tables of coverage information, example here

Current appearance:

Name                      Stmts   Miss  Cover
---------------------------------------------
my_program.py                20      4    80%
my_module.py                 15      2    86%
my_other_module.py           56      6    89%
---------------------------------------------
TOTAL                        91     12    87%

Sample Markdown syntax:

| Name               | Stmts      | Miss     |    Cover |
| ------------------ | ---------- | -------- | -------- |
| my_program.py      |         20 |        4 |      80% |
| my_module.py       |         15 |        2 |      86% |
| my_other_module.py |         56 |        6 |      89% |
| **TOTAL**          |     **91** |   **12** |  **87%** |

Sample Rendering:

Name Stmts Miss Cover
my_program.py 20 4 80%
my_module.py 15 2 86%
my_other_module.py 56 6 89%
TOTAL 91 12 87%

Describe the solution you'd like
Ideally the a flag to the default report subcommand could indicate to use markdown syntax like:

$ coverage report --markdown
| Name               | Stmts      | Miss     |    Cover |
| ------------------ | ---------- | -------- | -------- |
| my_program.py      |         20 |        4 |      80% |
| my_module.py       |         15 |        2 |      86% |
| my_other_module.py |         56 |        6 |      89% |
| **TOTAL**          |     **91** |   **12** |  **87%** |
$

This would allow the output to be piped to a file in the GitHub action summary, or captured by cog to inject into a markdown file.

Describe alternatives you've considered
If the report subcommand is not suitable place to add this flag then a new subcommand specifically for markdown reporting might be a good alternative with coverage markdown

$ coverage markdown
| Name               | Stmts      | Miss     |    Cover |
| ------------------ | ---------- | -------- | -------- |
| my_program.py      |         20 |        4 |      80% |
| my_module.py       |         15 |        2 |      86% |
| my_other_module.py |         56 |        6 |      89% |
| **TOTAL**          |     **91** |   **12** |  **87%** |
$ 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions