DotNet Test Action

The DotNet Test action in Continua CI is a wrapper around the .Net Core command line tools. If you're having trouble using the DotNet Test action, please refer to the .NET Core Command Line Tools documentation.

The DotNet Test action is used to run unit tests on a .Net project using the configured test runner.

DotNet Test

DotNet Test action main tab

Name

A friendly name for this action (will be displayed in the actions workflow area).

Enabled

Determines if this action will be run within the relevant stage.

Project/Solution/Assembly Path

Path to project file, solution file, assembly (dll or exe), or folder. If a folder is specified, it will be searched for a file that has a file extension that ends in 'proj' or, is 'sln' or 'slnx'. Defaults to the workspace folder. [--project]

Output Directory

Directory where test binaries can be found. Relative paths will be anchored to the workspace folder. [--output]

Settings File

The path to file with settings to use when running tests. [--settings]

Working Folder

Optional working folder for running the executable. Defaults to the project folder.

Using

The Using drop down is populated with any property collector whose namespace matches the pattern defined by the DotNet CLI actions. The pattern for this action is ^NetCore\.App.*

If you create a property collector for this action, make sure you select the Path Finder PlugIn type and give it a name that will match the pattern above in blue. Example names listed here, search the table's Plugin column for "DotNet Test".

For more in-depth explanations on property collectors see Property Collectors.

Alternatively, you can select the Custom option from the Using drop down list and specify a path in the resulting input field that will be displayed. Please read Why it's a good idea to use a property collector before using this option.

DotNet Bitness

The bitness of the DotNet executable. Options are Default, 32 Bit (X86), or 64 Bit (X64).

SDK Version

The SDK version to set in global.json file before running the DotNet executable.

Custom SDK Version

A custom SDK version string. This field is only visible when the SDK Version is set to 'Custom'.

Settings

DotNet Test action settings tab

Configuration

The configuration to use when building the project. This defaults to "Debug" if left empty. [--configuration]

Framework

Look for test binaries for a specified framework. [--framework]

Runtime

Target runtime to build for. For a list of Runtime Identifiers (RIDs), see the RID catalog. [--runtime]

Not available for .NET Core 1.x, 2.0, or 2.1.

Artifacts Path

All build output files will go in subfolders under the specified path, separated by project. [--artifacts-path]

Requires .NET 8 or later.

Test

DotNet Test action test tab

Test Runner Arguments

Arguments to be passed to the test runner. The relevant arguments depend on the test runner being used. [--]

To display the test results in Continua CI, you need to export the test results as a file and use one of the Import Tests actions to read the results from the file. Use this field to specify the path to the results file using the relevant argument for the test runner you are using e.g. -xml for XUnit and --resultxml for NUnit.

Filter

Use to filter tests using an expression. Examples: FullyQualifiedName~MyNamespace to run tests containing a name, TestCategory=Unit to run tests in a category, Priority=1 to run tests with a specific priority. Expressions can be combined with | (OR) and & (AND). For more information, see VSTest TestCase filter. [--filter]

Test Diagnostics File

The path to a diagnostics log file. Enables verbose diagnostic logging for the test platform, which is useful for troubleshooting test discovery or execution issues. Creates additional log files next to the specified path for test host and data collector diagnostics. [--diag]

Data Collector

The friendly name of a data collector to use for the test run. Common values include Code Coverage (Microsoft code coverage) and XPlat Code Coverage (cross-platform coverage via Coverlet). [--collect]

Not available for .NET Core 1.x.

Test Environment Variables

Environment variables to set for the test process, one per line in KEY=VALUE format. Use of this option forces the tests to be run in an isolated process. These are separate from the Environment tab variables, which are set for the dotnet CLI process itself. [-e|--environment]

Requires .NET 6 or later.

Flags

DotNet Test action flags tab

No restore

Set this flag to skip running an implicit restore during build. [--no-restore]

Not available for .NET Core 1.x.

No build

Set this flag to skip the building phase of the testing process. This implies --no-restore. Use this when the project has already been built in a previous build step. [--no-build]

List tests

Set this flag to list all the tests in the project to the log. [--list-tests]

Only visible when Log standard output is ticked on the Options tab.

Blame

Run the tests in blame mode. This creates a sequence file (Sequence.xml) that captures the order of test execution before a crash, helping to isolate problematic tests. This option does not collect memory dumps — use Blame crash or Blame hang for that. [--blame]

Not available for .NET Core 1.x or 2.0.

Blame crash

Collect a crash dump when the test host exits unexpectedly. This is useful for diagnosing tests that cause the test host process to crash. The dump file can be analyzed with tools like Visual Studio or dotnet-dump. Implies --blame. [--blame-crash]

Requires .NET 5 or later.

Blame crash dump type

The type of crash dump to collect. Options are Full or Mini. Defaults to Full. [--blame-crash-dump-type]

Requires .NET 5 or later. Only visible when Blame Crash is ticked.

Blame crash collect always

Collect a crash dump on expected as well as unexpected test host exit. [--blame-crash-collect-always]

Requires .NET 5 or later. Only visible when Blame Crash is ticked.

Blame hang

Run the tests in blame mode and collect a hang dump when a test exceeds the given timeout. This is particularly useful in CI environments where a hanging test can block the entire build pipeline indefinitely. Requires Blame hang timeout to be set. Implies --blame. [--blame-hang]

Requires .NET 5 or later.

Blame hang dump type

The type of hang dump to collect. Options are Full, Mini, or None. When 'None', test host is terminated on timeout but no dump is collected. Defaults to Full. [--blame-hang-dump-type]

Requires .NET 5 or later. Only visible when Blame Hang is ticked.

Blame hang timeout

Per-test timeout after which a hang dump is triggered and the test host process is terminated. Specify the duration using a suffix: 30s (seconds), 5m (minutes), 1.5h (hours). When used with data-driven tests, the timeout behavior depends on the test adapter — for xUnit, NUnit, and MSTest 2.2.4+, the timeout is renewed after every test case. [--blame-hang-timeout]

Requires .NET 5 or later. Only visible when Blame Hang is ticked. Required when visible.

Logging

DotNet Test action logging tab

Results Directory

The directory where the test results files are saved to. If left blank, a TestResults folder under the Working Folder is used. If the specified directory doesn't exist, it's created. [--results-directory]

Not available for .NET Core 1.x.

Use Internal Logger

Tick to use the built-in Continua CI test logger to capture and report test results directly. When enabled, the action automatically configures the logger and test adapter path. Enabled by default.

Show Verbose Messages from Internal Logger

Show verbose output from the internal logger.

Only visible when Use internal logger is ticked.

Cleanup Internal Logger Result Files

Delete the internal logger result files after they have been processed. Enabled by default.

Only visible when Use internal logger is ticked.

Test Adapter Path

The path to custom test adapters to use for logging test results. [--test-adapter-path]

Only visible when Use internal logger is not ticked.

Logger

The name or URL to a test results logger. [--logger]

Only visible when Use internal logger is not ticked.

Additional Arguments

DotNet Test action additional arguments tab

Additional Arguments

Use this to specify additional command line arguments and properties. Note that these will be placed at the end of the command line (before any Test Runner Arguments) and will override any other matching settings.

Options

DotNet Test action options tab

No logo

Suppress the startup banner and copyright message. [--nologo]

Not available for .NET Core 1.x or 2.x.

Fail Action if Any Tests Fail

Don't tick this if you want to use an Import Unit Tests action to report on test output.

No Output Timeout (in seconds)

How many seconds to wait for command line to write output before timing out. Set to zero to wait until the main timeout. Defaults to 60 seconds, but adjusts automatically based on the Verbosity setting (0 for Quiet, 300 for Minimal).

Log Standard Output

If this is ticked, the command line output is written to the build log.

Verbosity

The amount of information detail to display in the build log. [--verbosity]

Only visible when Log standard output is ticked.

Timeout (in seconds)

How long to wait for the action to finish running before timing out. Leaving this blank (or zero) will default to 86400 seconds (24 hours).

Treat failure as warning

Tick to continue build on failure marking the action with a warning status.

Ignore warnings

If this is ticked, any warnings logged will not mark the action with a warning status.

Environment

DotNet Test action environment tab

Environment Variables

Multiple environment variables can be defined - one per line. These are set before the command line is run.

Log environment variables

If this is ticked, environment variable values are written to the build log.

Generate system environment variables

Tick this checkbox to set up a list of new environment variables prefixed with 'ContinuaCI.' for all current system expression objects and variables.

Mask sensitive variable values in system environment variables

This checkbox is visible only if the 'Generate system environment variables' checkbox is ticked.

If this is ticked, the values of any variables marked as sensitive will be masked with **** when setting system environment variables. Clear this to expose the values.