是否可以从TeamCity构建中获取原始构建日志?我编写了一个自定义测试运行器,它作为命令行构建步骤运行,并通过将##teamcity...
行打印到stdout来报告测试结果。 TeamCity的构建日志似乎在识别它们时将其剥离。我希望看到原始输出来帮助调试我的测试运行器。
更新 显然这根本不可能。 neverov(我假设JetBrains的Dimitry Neverov?)解释了这个并给出了解决方法,所以我接受了他的回答。
答案 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 中运行测试:
tee
会将所有输出复制到文件中。原始输出将相同,并且会像往常一样由 TeamCity 解析。
您还应该在 artifacts 字段中添加一行,以使构建能够收集新创建的工件(构建常规设置):