GitHubActionsTestLogger 1.3.0
GitHub Actions Test Logger
✅ Project status: active. What does it mean?
Custom logger for dotnet test that reports test results in a structured format that GitHub Actions understands.
When using this logger, failed tests are listed in workflow annotations and highlighted in code diffs.
💬 If you want to chat, join my Discord server.
Download
📦 NuGet: dotnet add package GitHubActionsTestLogger
Screenshots

Usage
Installation
To use GitHub Actions Test Logger, follow these steps:
- Install GitHubActionsTestLogger package in your test project
- Install Microsoft.NET.Test.Sdk package in your test project (or update to latest)
- Modify your GitHub Actions workflow file by adding
--logger GitHubActionstodotnet test:
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.3.3
- name: Install .NET
uses: actions/setup-dotnet@v1.7.2
with:
dotnet-version: 5.0.x
- name: Build & test
run: dotnet test --configuration Release --logger GitHubActions
⚠️ Ensure that your test project references Microsoft.NET.Test.Sdk version 16.8.0 or higher. Older versions of this package may not work properly with custom test loggers.
⚠️ If you are using .NET SDK v2.2 or lower, you need to enable
<CopyLocalLockFileAssemblies>property in your test project.
Options
GitHub Actions Test Logger has a few options that you can override to customize its behavior.
In order to pass an option to the logger, include it as an additional parameter inside --logger:
dotnet test --logger "GitHubActions;option1=foo;option2=bar"
format
Specifies the format used when logging test results to the console.
The following replacement tokens are available:
$test-- replaced with the display name of the test$outcome-- replaced with the error message (in case of an exception) or the outcome of the test$traits.TRAIT_NAME-- replaced with the value of a trait namedTRAIT_NAME
Default: $test: $outcome.
Examples:
$test: $outcome->MyTests.Test1: AssertionException: Expected 'true' but found 'false'[$traits.Category] $test: $outcome->[UI Tests] MyTests.Test1: AssertionException: Expected 'true' but found 'false'
report-warnings
Specifies whether to additionally report warnings for tests that have neither failed nor succeeded (i.e. skipped or inconclusive). If disabled, only failed tests will be reported.
Can be set to either true or false.
Default: true.
No packages depend on GitHubActionsTestLogger.
.NET Framework 4.5.1
- Microsoft.TestPlatform.ObjectModel (>= 17.0.0)
.NET Standard 2.0
- Microsoft.TestPlatform.ObjectModel (>= 17.0.0)
.NET Standard 2.1
- Microsoft.TestPlatform.ObjectModel (>= 17.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 3.0.3 | 6 | 04/07/2026 |
| 3.0.2 | 5 | 03/29/2026 |
| 3.0.1 | 6 | 03/28/2026 |
| 3.0.0 | 5 | 03/29/2026 |
| 3.0.0-alpha3 | 7 | 03/29/2026 |
| 3.0.0-alpha2 | 5 | 03/29/2026 |
| 3.0.0-alpha1 | 8 | 03/29/2026 |
| 2.4.1 | 5 | 03/29/2026 |
| 2.4.0 | 5 | 03/29/2026 |
| 2.3.3 | 5 | 03/28/2026 |
| 2.3.2 | 5 | 03/29/2026 |
| 2.3.1 | 5 | 03/29/2026 |
| 2.3.0 | 6 | 03/29/2026 |
| 2.2.1 | 5 | 03/29/2026 |
| 2.2.0 | 3 | 03/29/2026 |
| 2.1.0 | 5 | 03/29/2026 |
| 2.0.2 | 5 | 03/29/2026 |
| 1.3.0 | 5 | 03/29/2026 |
| 1.2.0 | 5 | 03/29/2026 |
| 1.1.2 | 6 | 03/29/2026 |
| 1.1.1 | 6 | 03/29/2026 |
| 1.1.0 | 6 | 03/29/2026 |
| 1.0.0 | 5 | 03/29/2026 |
| 0.0.1 | 4 | 03/29/2026 |