GitHub Action to run .NET tests and generate reports and badges.
This Action can be used to execute .NET tests using unit testing frameworks such as xUnit, NUnit and MSTest within a GitHub Workflow, as well as generate a Report from the tests results and attach it to the Workflow Run as a Check Run.
Check out the usage below.
Here we see some badges generated along with some Gist-based Tests Reports as part of a GitHub Workflow associated with this project.
And here are some samples of the actual generated reports:
Badges:
Check out action.yml for full usage details. Here are some samples.
This is a basic example, that just provides a path to a single test project, and specifies the report name and title.
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: use this action, test solution dir
uses: zyborg/dotnet-tests-report@v1
with:
project_path: tests/My.Project.Tests
report_name: my_project_tests
report_title: My Project Tests
github_token: ${{ secrets.GITHUB_TOKEN }}
In this example, a Gist-based report is generated along with the one that is attached to the Workflow Run. Additionally, we request a Badge be generated that shows the number of passed tests out of the total number of tests found. We do this for each of two separate unit test projects.
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: unit tests for Contoso Business Layer
uses: zyborg/dotnet-tests-report@v1
with:
project_path: tests/Contoso.Business.Tests
report_name: contoso_business_tests
report_title: Contos Business Tests
github_token: ${{ secrets.GITHUB_TOKEN }}
gist_name: contoso_business_tests.md
gist_badge_label: 'Contoso Business: %Counters_passed%/%Counters_total%'
gist_token: ${{ secrets.GIST_TOKEN }}
- name: unit tests for Contoso Service Layer
uses: zyborg/dotnet-tests-report@v1
with:
project_path: tests/Contoso.Service.Tests
report_name: contoso_service_tests
report_title: Contos Service Tests
github_token: ${{ secrets.GITHUB_TOKEN }}
gist_name: contoso_service_tests.md
gist_badge_label: 'Contoso Service: %Counters_passed%/%Counters_total%'
gist_token: ${{ secrets.GIST_TOKEN }}
By default the check status is set to 'neutral'. Set the flag set_check_status_from_test_outcome: true
.
Note that setting this flag to true
will fail the check on pull requests if at least one test fails in your project.
This Action is implemented as a PowerShell GitHub Action.