The dotnet test
command is used to execute unit tests in a given solution. The dotnet test
command builds the solution and runs a test host application for each test project in the solution. The test host executes tests in the given project using a test framework, for example: MSTest, NUnit, or xUnit, and reports the success or failure of each test. If all tests are successful, the test runner returns 0 as an exit code; otherwise if any test fails, it returns 1.
For multi-targeted projects, tests are run for each targeted framework. The test host and the unit test framework are packaged as NuGet packages and are restored as ordinary dependencies for the project.
Examples
Run the tests in the project in the current directory:
dotnet test
Run the tests in the test1 project:
$ dotnet test ~/projects/test1/test1.csproj
Run the tests using test1.dll assembly:
$ dotnet test ~/projects/test1/bin/debug/test1.dll
Run the tests in the project in the current directory, and generate a test results file in the trx format:
$ dotnet test --logger trx
Run the tests in the project in the current directory, and generate a code coverage file (after installing Coverlet collectors integration):
$ dotnet test --collect:"XPlat Code Coverage"
Run the tests in the project in the current directory, and generate a code coverage file (Windows only):
$ dotnet test --collect "Code Coverage"
Run the tests in the project in the current directory, and log with detailed verbosity to the console:
$ dotnet test --logger "console;verbosity=detailed"
Run the tests in the project in the current directory, and log with the trx logger to testResults.trx in the TestResults folder:
$ dotnet test --logger "trx;logfilename=testResults.trx"
Since the log file name is specified, the same name is used for each target framework in the case of a multi-targeted project. The output for each target framework overwrites the output for preceding target frameworks. The file is created in the TestResults folder in the test project folder, because relative paths are relative to that folder. The following example shows how to produce a separate file for each target framework.
Run the tests in the project in the current directory, and log with the trx logger to files in the TestResults folder, with file names that are unique for each target framework:
$ dotnet test --logger:"trx;LogFilePrefix=testResults"
Run the tests in the project in the current directory, and log with the html logger to testResults.html in the TestResults folder:
$ dotnet test --logger "html;logfilename=testResults.html"
Run the tests in the project in the current directory, and report tests that were in progress when the test host crashed:
$ dotnet test --blame
Run the tests in the test1 project, providing the -bl (binary log) argument to msbuild:
$ dotnet test ~/projects/test1/test1.csproj -bl
Run the tests in the test1 project, setting the MSBuild DefineConstants property to DEV:
$ dotnet test ~/projects/test1/test1.csproj -p:DefineConstants="DEV"
reference
- https://github.com/dotnet/docs/blob/main/docs/core/tools/dotnet-test.md
- https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test
- Best AI tools for Software Engineers - November 4, 2024
- Installing Jupyter: Get up and running on your computer - November 2, 2024
- An Introduction of SymOps by SymOps.com - October 30, 2024