如何使用dotnet test命令发布结果

时间:2018-04-19 09:12:48

标签: .net-core command-line-arguments dotnet-core-pack

我有一个用dotnet核心编写的测试项目。这需要以xml或html格式发布结果。有没有办法可以使用相同的命令将结果发布到特定目录? - result-directory对我不起作用

4 个答案:

答案 0 :(得分:11)

您可以通过执行dotnet test来查看所有dotnet test --help选项。其中一个选项是-l, --logger,它提供了一些很好的信息:

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

该支持链接https://aka.ms/vstest-report具有完整信息。

所以要回答你的具体问题,你可以说

dotnet test -l:trx;LogFileName=C:\temp\TestOutput.xml

将结果发布到特定目录。

另一个选择是在test.csproj中设置MSBuild属性:

<PropertyGroup>
  <VSTestLogger>trx</VSTestLogger>
  <VSTestResultsDirectory>C:\temp</VSTestResultsDirectory>
</PropertyGroup>

告诉记录器将文件放在C:\temp目录中。

答案 1 :(得分:2)

在遇到相同问题(我想以JUnit格式发布测试结果)后,我最终找到了JUnitTestLogger NuGet package

这是安装它的问题:

dotnet add package JUnitTestLogger --version 1.1.0

然后以以下方式运行测试:

dotnet test --logger "junit;LogFilePath=path/to/your/test/results.xml"

答案 2 :(得分:1)

我无法使用 Eric Erhardt 的答案中提供的语法使其正常工作。

使用 TRX Logger 示例 here 我能够重新创建正确的语法。

dotnet test --logger:"trx;LogFileName=C:\Temp\TestResults.xml" MyLibraryToTest.dll

$ dotnet test --logger:"trx;LogFileName=C:\Temp\TestResults.xml" MyLibraryToTest.dll
Microsoft (R) Test Execution Command Line Tool Version 16.8.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Starting ChromeDriver 87.0.4280.88 (89e2380a3e36c3464b5dd1302349b1382549290d-refs/branch-heads/4280@{#1761}) on port 51459
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Results File: C:\Temp\TestResults.xml

Passed!  - Failed:     0, Passed:     1, Skipped:     0, Total:     1, Duration: 7 s - MyLibraryToTest.dll (net5.0)

答案 3 :(得分:0)

除了Eric的回答,您还可以运行dotnet xunit -xml output.xml

$ dotnet xunit --help
  ...
  Result formats: (optional, choose one or more)
  -xml <filename>        : output results to xUnit.net v2 XML file
  -xmlv1 <filename>      : [net4x only] output results to xUnit.net v1 XML file
  -nunit <filename>      : [net4x only] output results to NUnit v2.5 XML file
  -html <filename>       : [net4x only] output results to HTML file
...

http://xunit.github.io/docs/getting-started-dotnet-core