1

因此,这里的关键元素是隐藏的人工制品,也称为出现在.teamcity/部分构建工件下的人工制品。

一些上下文:我们目前在 NUnit 测试步骤上运行 dotCover 以报告我们的测试覆盖率。CoverageResults.xml这会将结果的编译放在名为.teamcity/.NETCoverage/. 这是我想要访问的文件,因此我们可以挖掘某些数据并将其发送到壁虎板。

现在,到目前为止,我们可以使用建议的方法成功地获取不在目录这一部分中的工件(例如输出时的构建结果等) 。仅在访问此隐藏目录时才会出现此问题。

另一个奇怪的事情是响应:302 Temporarily Moved。

作为参考,我的链接看起来像:(在 powershell btw 中)

"http://{0}:{1}@{2}/guestAuth/repository/download/{3}/.lastFinished/.teamcity/.NETCoverage/CoverageReport.xml" -f $serverURl, $gUName, $gPassword, $buildType

有人对访问隐藏的文物有什么建议吗?还能从哪里获取这些数据(我们在系统变量上没有找到任何东西)?

注意:我们已经知道在构建步骤完成之前不会生成这些工件。我们是在针对已完成构建的事实之后执行此操作,而不是在构建作业本身期间执行此操作。

4

2 回答 2

0

如果您在 Artifact Paths 字段中添加它,它将在构建完成后将报告附加为构建工件

%system.teamcity.build.tempDir%\**\CoverageReport.xml

希望这可以帮助

于 2015-06-02T22:32:19.653 回答
0

留下我们提出的解决方案,以防它对其他人有帮助:

最后,我们从来没有得到详细的原因,但简而言之,使用带有 Powershell 的 Invoke-WebRequest 的 in URL 身份验证不起作用。看来这是从创建的请求或类似请求中挑选出来的,但我们朝另一个方向发展,所以我不能对此发表更多评论。

我们所做的是使用 cURL。这不会做任何 Powershell 所做的事情,因此我们在 Team City Build 中将其简单地分解为两个步骤。使用 cURL 下载文件并将其放置在临时目录中的命令行步骤和之后的 Powershell 步骤以获取文件并执行我们想做的事情。

于 2015-06-17T12:00:14.953 回答