Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

dotnet test not creating test results folder

As part of our ASP.NET Core 2.0 build process I have added a dotnet test command which I have added as a Windows batch file.

Here is my command.

dotnet test "MyProject.csproj" --no-restore --results-directory "MyProject\TestResults" --verbosity minimal

And here is the output when run from the command line.

enter image description here

So it all appears to work correctly, yet no test results / test output is created.

like image 907
DomBurf Avatar asked Mar 20 '18 17:03

DomBurf


2 Answers

To output the test results using the dotnet test option --results-directory you have to also set --logger.

The -xml and --work options no longer work as they are not part of the options provided by the test CLI. I remember have used -xml in the past and it worked but it doesn't anymore.

You can see all the options for CLI .NET Core 2.x here

To publish the tests results into a specific folder, you should use the command below:

dotnet test --logger "trx;logfilename=mytests.trx" --results-directory ./somefolder/subfolder

Or

dotnet test --logger "trx;LogFileName=./somefolder/subfolder/mytests.trx"

The trx file is a XML file, so you could name it as mytests.xml instead of mytests.trx.

If you use VSTS, you can publish your tests to be shown in your build page using the command above in '.NET Core' task for test and the 'Publish Test Result' task.

The '.NET Core' task explains where it publishes the results as per screenshot below:

enter image description here

Once all done, your build page would look like this:

enter image description here

like image 175
Alexz Avatar answered Sep 20 '22 23:09

Alexz


To output the test results from dotnet test, you can try pass -xml /some/path/out.xml or use the work parameter, like this: dotnet test --work:"mypath/myresult.xml". See below threads for details:

  • dotnet test - Output test results
  • Is there a way to specify TestResult.xml location?

Besides, generally you need to specify the argument -l|--logger <LoggerUri/FriendlyName> which specifies a logger for test results.

e.g.:

dotnet test "myproject.csproj" --logger "trx;LogFileName=path\to\tests\folder\results.trx" or dotnet test "myproject.csproj" -l:"trx;LogFileName=path\to\tests\folder\results.trx"

To make the generated trx files available as test results in VSTS/TFS, you can use the "Publish Test Results" task:

enter image description here

like image 37
Andy Li-MSFT Avatar answered Sep 20 '22 23:09

Andy Li-MSFT