Continuous integration TeamCity+;蛋糕:在项目摘要中显示VSTest输出
我知道已经有了一个类似的问题,但我认为我的问题已经足够不同,需要创建一个新的职位 我用蛋糕0.21.1.0 作为TeamCity上的构建步骤,我正在执行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: 当我导航到查看构建日志本身时,我会看到有关失败测试的更多详细信息: 在上面的屏幕截图中,我
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
文件放置在何处(有关更多信息,请参阅)。此选项将在运行单元测试时为您提供实时报告
非常感谢您的回复!我尝试了你的第一种方法,但不幸的是,这对我不起作用。我已经更新了我的帖子,包括我采取的步骤,以及最终的结果。你能看一下并给我一些反馈吗?非常感谢!很抱歉迟了答复。您不能从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)导入数据