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

时间:2012-07-06 00:05:53

标签: teamcity

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

更新 显然这根本不可能。 neverov(我假设JetBrains的Dimitry Neverov?)解释了这个并给出了解决方法,所以我接受了他的回答。

5 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:0)

当你在问题中引用##teamcity...行时,我无法确定这是你在谈论的内容,但这正是我目前为命令行构建步骤所做的工作(目前我所做的一切):

##teamcity[testStarted name='dummyTestName' captureStandardOutput='true']

echo "Do your command-line build steps here."

##teamcity[testFinished name='dummyTestName']

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

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

tee 会将所有输出复制到文件中。原始输出将相同,并且会像往常一样由 TeamCity 解析。

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

之后,您将在 artifacts 选项卡中看到一个新存档,其中包含此构建步骤的原始日志: enter image description here

enter image description here