是否可以从TeamCity构建中获取原始构建日志?

是否可以从TeamCity构建中获取原始构建日志?,teamcity,Teamcity,是否可以从TeamCity构建中获取原始构建日志?我已经编写了一个自定义测试运行程序,它作为命令行构建步骤运行,并通过将##teamcity…行打印到stdout来报告测试结果。TeamCity的构建日志似乎在识别它们时将其剥离。我希望看到原始输出,以帮助调试我的测试运行程序 更新: 显然这根本不可能。neverov(我想JetBrains的Dimitry neverov?)已经解释了这一点,并给出了一个解决方案,所以我接受了他的回答。您可以通过单击构建日志页面上的“下载完整构建日志”来下载它。

是否可以从TeamCity构建中获取原始构建日志?我已经编写了一个自定义测试运行程序,它作为命令行构建步骤运行,并通过将
##teamcity…
行打印到stdout来报告测试结果。TeamCity的构建日志似乎在识别它们时将其剥离。我希望看到原始输出,以帮助调试我的测试运行程序

更新:
显然这根本不可能。neverov(我想JetBrains的Dimitry neverov?)已经解释了这一点,并给出了一个解决方案,所以我接受了他的回答。

您可以通过单击构建日志页面上的“下载完整构建日志”来下载它。

您可以通过查看代理
/logs
目录来查看构建代理的原始输出。这将显示TeamCity控制台中显示的生成输出中隐藏的未解析数据


例如
c:\TeamCity Agent\logs\TeamCity build.log

我不太清楚这是否是您在提到问题中的
##TeamCity…
行时所说的,但这是我目前为命令行构建步骤所做的工作(这是我目前所做的):

##teamcity[TestStart name='dummyTestName'captureStandardOutput='true']
echo“在此处执行命令行生成步骤。”
##teamcity[testFinished name='dummyTestName']

这是一种黑客的解决方法,但它会导致stdout/stderr显示在TeamCity web UI的构建日志页面上。

构建日志上有一个选项可以查看“详细/详细”-它显示所有服务消息。从TC9开始我就看到了这个问题。

我看到这个问题很久以前(大约10年前)就被问到了,但TeamCity没有任何变化

我在TestReporter中遇到了类似的问题,并找到了一种获取原始日志的方法,而无需连接到构建代理并从那里获取它(这可能很困难)。我的解决方案不涵盖整个构建日志,但在通过构建步骤中的自定义脚本运行步骤时,它会很有帮助

因此,解决方案是将
| teee2e_raw.log
添加到所需的构建步骤脚本中。例如,我们通过运行Docker compose命令在Docker中运行测试:

tee
将所有输出复制到文件中。原始输出将是相同的,TeamCity将一如既往地对其进行解析

您还应该在artifacts字段中添加一行,以使build能够收集新创建的工件(build常规设置):

之后,您将在“工件”选项卡中看到此构建步骤的原始日志中的新存档:


这对我使用TeamCity 6.5.5(build 18087)不起作用。它似乎给出了与网站上构建日志相同的文本。它肯定没有给我
##teamcity
行。事实证明,并非所有的服务消息都是平等的,而且teamcity甚至在完整的构建日志中隐藏了其中的一些消息。测试结果消息也被隐藏。所以调试它的唯一方法是在本地或代理上运行构建脚本。如果输出中有消息,但TeamCity忽略了它们,请发布错误。