GitHub Action for C# projects which parses, keeps history, and plots:
dotnet build
log warningsdotnet test
results (TRX output)- TO-DOs in code
- Source line counts
- Test Code Coverage
Excellent for keeping track of test status, code statistics, tasks outstanding, and providing a simple graphical output. As the output is markdown and PNGs, it can be easily added to documentation sites such as DocFX.
- Test Code Coverage: per project
- TO-DOs: per label, per project, total
- Build warnings: per project, total
- Line Counts: per project, total
README.md
which is a summary of the below- Build warnings
- Lists all build warnings
- File + line number of the warning with link to code
- Analyzer ID with link to analyzer documentation (when available)
- Text of the warning
- Count
- Per project
- Per Analyzer ID
- Charts
- Per project
- Total
- Test Results
- Markdown summary:
- Failure vs total count
- Table summarizing test failures (if any)
- Test Name
- Failure source location (with source link)
- Link to details about the failure (the below txt file)
- Failed Test result information into .txt
- Test Name
- Parameters
- Standard Output
- Error
- Stack Trace
- Record of each run with test failures names (if any)
- Date
- Commit SHA
- Total Test Count
- Failed Test Count
- Failed Test Names
- Markdown summary:
- Line Counts
- Charts & Tables
- Per project
- Total
- Charts & Tables
- TO-DO
- Charts & Tables for counts
- Per label/category
- Per project
- Total
- Detailed table with each TO-DO's
- Source location (with source link)
- Label/Category
- Full text
- Charts & Tables for counts
- Test Code Coverage uses history xml files generated by the Report Generator GitHub Action.
- Line Counts: per project resolution
- TO-DOs: per label, per project resolution
- Build warnings: per project resolution
- Test failures: per test resolution
Example:
- name: 'Run gh-action-plot'
uses: erichiller/gh-action-plot@v1.0.0
with:
source_scan_dir: './'
output_dir: './docs/stats'
test_results_dir: './test/mkmrk.Channels.Tests/'
coverage_history_dir: './docs/coverage/history/'
For a real world example, see mkmrk.Channels documentation and workflow.