1

我正在使用 TeamCity 进行 CI。我的一些单元测试在运行时会生成文件(基于 Selenium 的测试失败时的浏览器屏幕截图),并且这些文件被放置在Environment.CurrentDirectory例如

C:\Program Files (x86)\TeamCity\buildAgent\temp\buildTmp\SYSTEM_servername 2013-12-10 18_05_14\Out

我想将这些文件包含为TeamCity artifacts,但这似乎 TeamCity 无法根据 checkout 目录查找工件。

一种解决方法是将我生成的文件保存到硬编码路径(例如C:\temp),但这并不理想。有没有更清洁的替代品?

4

1 回答 1

3

在 TeamCity 中,您可以找到一些指向特定路径的参数。
如果您能找到其中一个对您有用,那么您可以在 Artifact Path 中使用该参数。
(在任何构建结果日志中的“参数”选项卡中找到参数)

例如,我找到了一个指向:
D:\BuildAgent\temp\buildTmp ”的参数,它被称为:system.teamcity.build.tempDir

然后我在 Artifact Path 上使用它,但做了一些调整:
%system.teamcity.build.tempDir%\**\Out\errorScreenshots\* => errorScreenshots


让我为您拆下这条路径:
%system.teamcity.build.tempDir% ”:此参数转到文件夹“D:\BuildAgent\temp\buildTmp”。

\** ”:输入一个我不知道名称的文件夹,在我的情况下,它类似于“srv_teamcity_TEAMCITY-3 2017-06-22 19_35_18”,日期和时间不断变化。

\Out ”:然后进入“Out”文件夹。

\errorScreenshots ”:然后进入“errorScreenshots”文件夹。我创建了这个文件夹,以便在出错时将一些屏幕截图放在那里。

\* ”:带来任何类型的文件,对我来说只有“.png”文件。


"":这告诉 TeamCity 在 Artifacts 视图中创建一个文件夹,如果您显示了很多工件,这是必要的。它习惯于让事情更清晰。

希望你觉得这个回复有用。

干杯!

于 2017-06-22T17:47:56.717 回答