在测试.NET Core项目时,TeamCity不会获取xUnit测试的结果

Bja*_*sen 5 teamcity xunit .net-core cakebuild

我有一个小的.NET Core项目,其中完整的构建/测试/部署过程在Cake脚本中处理.

我有一个运行蛋糕脚本的powershell脚本.

在本地运行脚本时,我得到每个失败的xUnit测试的结果,但是当通过TeamCity的PowerShell运行程序运行相同的脚本时,我没有得到每个测试的结果,只是失败测试数量的摘要.

蛋糕任务:

Task("Test")
    .IsDependentOn("Clean")
    .Does(() =>
    {
        GetFiles("./tests/**/*.csproj")
            .ToList()
            .ForEach(file => DotNetCoreTest(file.FullPath));
    });
Run Code Online (Sandbox Code Playgroud)

这个Cake代码在引擎盖下运行"dotnet test".

在构建服务器上的PowerShell中手动运行脚本时,我得到以下输出:

Test run for c:\project\myproject\tests\Web.Tests\bin\Debug\netcoreapp2.0\Web.Tests.dll(.NETCoreApp,Version=v2.0)
Microsoft (R) Test Execution Command Line Tool Version 15.7.0
Starting test execution, please wait...
[xUnit.net 00:00:00.7397647]        Web.Tests.UnitTest1.Test1[FAIL]
Error Message:
 Assert.False() Failure
Expected: False
Actual:   True
Test Run Failed.
Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.
Test Run Failed.
Run Code Online (Sandbox Code Playgroud)

使用TeamCity的PowerShell运行程序运行相同的脚本时,我得到了这个:

[14:27:45]  [Step 1/1] Test run for D:\TeamCity\buildAgent\work\7ff27c4721bc4a68\tests\Web.Tests\bin\Release\netcoreapp2.0\Web.Tests.dll(.NETCoreApp,Version=v2.0)
[14:27:45]  [Step 1/1] Microsoft (R) Test Execution Command Line Tool Version 15.7.0
[14:27:45]  [Step 1/1] Starting test execution, please wait...
[14:27:48]  [Step 1/1] Failed   Web.Tests.UnitTest1.Test1
[14:27:48]  [Step 1/1] Error Message:
[14:27:48]  [Step 1/1]  Assert.False() Failure
[14:27:48]  [Step 1/1] Expected: False
[14:27:48]  [Step 1/1] Actual:   True
[14:27:48]  [Step 1/1] Test Run Failed.
[14:27:48]  [Step 1/1] Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.
Run Code Online (Sandbox Code Playgroud)

如您所见,它缺少包含失败测试名称的一行.

知道为什么会这样吗?

And*_*nov 6

使用TeamCity文章测试.NET Core项目可以解释此行为.

您必须安装TeamCity.VSTest.TestAdapter包才能获取测试输出.