dotnet测试没有创建测试结果文件夹

Dom*_*urf 12 tfs tfsbuild tfs-2015 asp.net-core dotnet-test

作为ASP.NET Core 2.0构建过程的一部分,我添加了一个dotnet测试命令,我将其添加为Windows批处理文件.

这是我的命令.

dotnet test "MyProject.csproj" --no-restore --results-directory "MyProject\TestResults" --verbosity minimal
Run Code Online (Sandbox Code Playgroud)

这是从命令行运行时的输出.

在此输入图像描述

所以它似乎都正常工作,但没有创建测试结果/测试输出.

Ale*_*x.H 24

要使用您还必须设置的dotnet test选项输出测试结果.--results-directory--logger

这些-xml--work选项不再起作用,因为它们不是测试CLI提供的选项的一部分.我记得-xml在过去使用它并且它有效但它不再存在了.

您可以在此处查看CLI .NET Core 2.x的所有选项

要将测试结果发布到特定文件夹,您应该使用以下命令:

dotnet test --logger "trx;logfilename=mytests.trx" --results-directory ./somefolder/subfolder
Run Code Online (Sandbox Code Playgroud)

TRX文件是一个XML文件,所以你可以将其命名为mytests.xml而不是mytests.trx.

如果使用VSTS,则可以使用上面的".NET Core"测试任务和"发布测试结果"任务发布要在构建页面中显示的测试.

".NET Core"任务根据下面的屏幕截图说明了它发布结果的位置:

在此输入图像描述

完成所有操作后,您的构建页面将如下所示:

在此输入图像描述

  • 我正在使用 SonarQube,并通过设置记录器(设置为 nunit,因为我使用 NUnit3 进行单元测试)默认文件名 TestResults.xml 被 SonarQube 正确选取和处理。注意:我需要在我的测试项目中安装 NuGet 包 NUnitXML.TestLogger 才能激活它。 (2认同)

And*_*SFT 12

要从dotnet测试输出测试结果,您可以尝试传递-xml /some/path/out.xml或使用work参数,如下所示:dotnet test --work:"mypath/myresult.xml".请参阅以下主题:


此外,通常需要指定-l|--logger <LoggerUri/FriendlyName>为测试结果指定记录器的参数.

例如:

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

要使生成的trx文件在VSTS/TFS中作为测试结果可用,您可以使用"发布测试结果"任务:

在此输入图像描述

  • dotnet test 无法识别 --xml 或 --work 参数。大概是为了发布我的测试结果,我需要先执行单元测试,这就是我试图让 dotnet 测试工作的原因。 (2认同)