Continuous integration TeamCity+;蛋糕:在项目摘要中显示VSTest输出

Continuous integration TeamCity+;蛋糕:在项目摘要中显示VSTest输出,continuous-integration,teamcity,cakebuild,Continuous Integration,Teamcity,Cakebuild,我知道已经有了一个类似的问题,但我认为我的问题已经足够不同,需要创建一个新的职位 我用蛋糕0.21.1.0 作为TeamCity上的构建步骤,我正在执行build.ps1,它反过来调用build.cake。在build.cake脚本中,我添加了一个名为RunTests的任务,它使用VS-Test-Runner来执行我的单元测试 目前,每当有失败的测试时,我看到的都是TeamCity主页上的退出代码1: 当我导航到查看构建日志本身时,我会看到有关失败测试的更多详细信息: 在上面的屏幕截图中,我

我知道已经有了一个类似的问题,但我认为我的问题已经足够不同,需要创建一个新的职位

我用蛋糕0.21.1.0

作为TeamCity上的构建步骤,我正在执行
build.ps1
,它反过来调用
build.cake
。在
build.cake
脚本中,我添加了一个名为
RunTests
的任务,它使用VS-Test-Runner来执行我的单元测试

目前,每当有失败的测试时,我看到的都是TeamCity主页上的退出代码1:

当我导航到查看构建日志本身时,我会看到有关失败测试的更多详细信息:

在上面的屏幕截图中,我突出显示了我希望在TeamCity主页上显示的文本输出,作为项目摘要的一部分,而不是退出代码1

如何捕获VS Test Runner输出,以便将其作为构建脚本的一部分

更新:

谢谢@mholo65的支持!我尝试了他概述的第一种方法,但不幸的是,它对我不起作用

我修改了我的
build.cake
脚本以包含以下行:

VSTest("./**/bin/Release/CakeTest.dll", new VSTestSettings() { Logger = "trx"} );
TeamCity.ImportData("vstest", "./TestResults/*.trx");
在我的TeamCity构建代理上运行测试时,这是我的工作/签出目录:

这是我的结果文件的完整路径:

然而,这仍然是我在TeamCity主页上看到的内容,而不是VSTest输出
Total tests:5。通过:3。失败:2。已跳过:0。

您有两个选择

  • 使用
    vstest.console.exe
    将测试结果输出为
    trx
    格式,并将其导入TeamCity。即,设置为
    “trx”
    ,然后使用导入。
    trx
    文件的路径必须与签出目录相关,请参阅以了解更多信息。这里需要注意的是,(与
    MSTest.exe
    不同)无法告诉
    vstest.console.exe
    trx
    文件放置在何处(有关更多信息,请参阅)
  • 从“TeamCity”下载自定义VSTestLogger并将其安装到构建代理上,然后将其设置为
    。此选项将在运行单元测试时为您提供实时报告

  • 非常感谢您的回复!我尝试了你的第一种方法,但不幸的是,这对我不起作用。我已经更新了我的帖子,包括我采取的步骤,以及最终的结果。你能看一下并给我一些反馈吗?非常感谢!很抱歉迟了答复。您不能从glob模式创建
    FilePath
    ,而是需要这样做:
    var testResult=GetFiles(“./TestResults/*.trx”).FirstOrDefault();TeamCity.ImportData(“vstest”,“TestResults/”+testResult.GetFilename())此外,请检查您的TeamCity日志。它应该像
    ##teamcity[importData type='vstest'path='TestResults/foobar.trx']
    使用'vstest'处理器从'TestResults/foobar.trx'(291.39 KB)导入数据