How to publish results using dotnet test command
You can see all the dotnet test
options by executing dotnet test --help
. One of the options is -l, --logger
, which gives some great information:
Specify a logger for test results.
Examples:
Log in trx format using a unqiue file name: --logger trx
Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>"
More info on logger arguments support:https://aka.ms/vstest-report
That support link https://aka.ms/vstest-report, has the full information.
So to answer your specific question, you can say
dotnet test -l:trx;LogFileName=C:\temp\TestOutput.xml
To publish the results to a particular directory.
Another option is setting MSBuild properties in your test.csproj:
<PropertyGroup>
<VSTestLogger>trx</VSTestLogger>
<VSTestResultsDirectory>C:\temp</VSTestResultsDirectory>
</PropertyGroup>
Which tells the logger to put the file in the C:\temp
directory.
After stumbling on the same problem (I wanted to publish test results in JUnit format), I ended up finding the JUnitTestLogger NuGet package.
It was a matter of installing it:
dotnet add package JUnitTestLogger --version 1.1.0
And then running the tests as:
dotnet test --logger "junit;LogFilePath=path/to/your/test/results.xml"