A wrapper for running NUnit tests using NUnit-Console or dotnet test with real-time updates and analysis
NUnit.Commander provides real-time test status output for tests run via the NUnit-Console or dotnet test
. It works in conjunction with NUnit.Extension.TestMonitor (required for Commander to function) which provides insight into your tests as they run. It is a crucial tool for projects with complicated test architecture.
- Real-Time test output to stdout / piped log
- Full final report
- Multiple test run support for repeated running
- Test Analysis - report on changes in test duration, test stability
- Tabbed console interface for viewing real-time test errors and summaries while running
- Prettify of stack traces
- Generate log reports of test durations, results
- Generate log report summaries
Download and install the latest release.
NUnit.Extension.TestMonitor must be installed along with your NUnit-Console test runner, or as a nuget package on your test project when using the dotnet test
test runner. Please refer to installation instructions for NUnit.Extension.TestMonitor
See the wiki for further examples.
Real-time output of test status
The NUnit.Extension.TestMonitor extension is an NUnit engine extension which sends test events over IPC/Named pipes. Commander connects to the IPC/Named pipe server the extension creates and receives test events in real-time. Therefore, timeouts are required to give Commander a chance to connect to the extension when NUnit engine executes the tests and ensure we do not miss any events.
Here you can tell Commander where the NUnitConsole installation folder is. This is optional, otherwise it will use the default path C:\Program Files (x86)\NUnit.org\nunit-console
. You can pass the usual NUnit-Console test runner arguments using the --args
option and escape any required quotes with \"
> NUnit.Commander.exe --timeout=15 --test-runner NUnitConsole --path=C:\Path-to-NUnit-console-installation-folder --args="--workers=16 --where \"cat == UnitTests\" C:/Path-to/MyTestProject1.dll C:/Path-to/MyTestProject2.dll"
Dotnet test is a little more flexible as you only need to give it the path to your solution or test project(s).
> NUnit.Commander.exe --timeout=15 --test-runner DotNetTest --args="C:/Path-to/MyTestProject"
NUnit.Commander can detect the runtime of your test assembly and schedule the appropriate test runner. Results will be aggregated and displayed for each runtime as well as a final summary.
> NUnit.Commander.exe --timeout=15 --test-runner Auto --nunit-args="--noheader --noresult --workers=16 --where \"cat != CategoryToExclude\"" --dotnet-args="--filter TestCategory!=CategoryToExclude" --test-assemblies="C:/Path-to/MyTestProject1.dll C:/Path-to/MyTestProject2.dll"