我知道已经有一个类似的问题here,但我认为我的问题足够不同,需要创建一个新的帖子。
我使用CAKE 0.21.1.0。
作为TeamCity上的构建步骤,我正在执行
目前,每当有失败的测试时,我只能在TeamCity主页面上看到
我该如何捕获VS测试运行器的输出,以便我可以将其包含在我的构建脚本与TeamCity的交互interaction with TeamCity中?
更新:
感谢@mholo65的回复his reply!我尝试了他概述的第一种方法,但不幸的是它对我没有起作用。
我修改了我的
在我的TeamCity构建代理上运行测试时,这是我的工作/检出目录:
我使用CAKE 0.21.1.0。
作为TeamCity上的构建步骤,我正在执行
build.ps1
,它又调用build.cake
。在build.cake
脚本中,我添加了一个名为RunTests
的任务,该任务使用VS Test Runner来执行我的单元测试。目前,每当有失败的测试时,我只能在TeamCity主页面上看到
Exit code 1
。
当我导航查看构建日志本身时,我可以看到有关失败测试的更多详细信息:
在上面的截图中,我已经突出显示了文本输出,我希望将其作为项目概述的一部分显示在TeamCity主页面上,而不是Exit code 1
。我该如何捕获VS测试运行器的输出,以便我可以将其包含在我的构建脚本与TeamCity的交互interaction with TeamCity中?
更新:
感谢@mholo65的回复his reply!我尝试了他概述的第一种方法,但不幸的是它对我没有起作用。
我修改了我的
build.cake
脚本以包含这些行:VSTest("./**/bin/Release/CakeTest.dll", new VSTestSettings() { Logger = "trx"} );
TeamCity.ImportData("vstest", "./TestResults/*.trx");
在我的TeamCity构建代理上运行测试时,这是我的工作/检出目录:
这是我的结果文件的完整路径:
然而,这仍然是我在TeamCity主页面看到的,而不是VSTest输出 总测试数:5。通过:3。失败:2。跳过:0。
:
FilePath
,而是需要执行类似以下操作:var testResult = GetFiles("./TestResults/*.trx").FirstOrDefault(); TeamCity.ImportData("vstest", "./TestResults/" + testResult.GetFilename());
- bjorkstromm##teamcity[importData type='vstest' path='TestResults/foobar.trx']
和Importing data from 'TestResults/foobar.trx' (291.39 KB) with 'vstest' processor
这样的内容。 - bjorkstromm