如何使用 dotnet test 命令发布结果
How to publish results using dotnet test command
我有一个用 dotnet core 编写的测试项目。这需要以 XML 或 HTML 格式发布结果。有没有一种方法可以使用相同的命令将结果发布到特定目录?
--result-directory
对我不起作用
您可以通过执行dotnet test --help
查看所有dotnet test
选项。其中一个选项是 -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
支持linkhttps://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
目录中。
在遇到同样的问题后(我想以 JUnit 格式发布测试结果),我最终找到了 JUnitTestLogger NuGet package。
安装问题:
dotnet add package JUnitTestLogger --version 1.1.0
然后 运行 测试为:
dotnet test --logger "junit;LogFilePath=path/to/your/test/results.xml"
我无法使用 的答案中提供的语法使其工作。
使用 TRX 记录器示例 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)
我今天成功使用了 nuget 包 JunitXml.TestLogger,版本 3.0.114:
https://www.nuget.org/packages/JunitXml.TestLogger/
添加为依赖:
dotnet add package JunitXml.TestLogger --version 3.0.114
一旦添加为依赖项,只需执行即可:
dotnet test --logger:"junit;LogFilePath=dotnet-test-result.xml"
今天 JunitXml.TestLogger 的星数是另一个答案中提到的 nuget 包 JUnitTestLogger 的四倍。 JunitXml.TestLogger 正在积极维护,而 JUnitTestLogger 已 2 年未触及。
我有一个用 dotnet core 编写的测试项目。这需要以 XML 或 HTML 格式发布结果。有没有一种方法可以使用相同的命令将结果发布到特定目录?
--result-directory
对我不起作用
您可以通过执行dotnet test --help
查看所有dotnet test
选项。其中一个选项是 -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
支持linkhttps://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
目录中。
在遇到同样的问题后(我想以 JUnit 格式发布测试结果),我最终找到了 JUnitTestLogger NuGet package。
安装问题:
dotnet add package JUnitTestLogger --version 1.1.0
然后 运行 测试为:
dotnet test --logger "junit;LogFilePath=path/to/your/test/results.xml"
我无法使用
使用 TRX 记录器示例 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)
我今天成功使用了 nuget 包 JunitXml.TestLogger,版本 3.0.114: https://www.nuget.org/packages/JunitXml.TestLogger/
添加为依赖:
dotnet add package JunitXml.TestLogger --version 3.0.114
一旦添加为依赖项,只需执行即可:
dotnet test --logger:"junit;LogFilePath=dotnet-test-result.xml"
今天 JunitXml.TestLogger 的星数是另一个答案中提到的 nuget 包 JUnitTestLogger 的四倍。 JunitXml.TestLogger 正在积极维护,而 JUnitTestLogger 已 2 年未触及。