我正在使用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根据结帐目录查找工件。
一种解决方法是将生成的文件保存到硬编码路径(例如 C:\ temp ),但这并不理想。有更清洁的选择吗?
答案 0 :(得分:2)
在TeamCity中,您可以找到一些指向某些路径的参数。
如果您能找到对您有用的其中一个,那么您可以在工件路径中使用该参数
(在“参数”选项卡中查找任何“构建结果”日志中的参数)
例如,我找到了一个指向的参数:
" d:\ BuildAgent \ TEMP \ buildTmp "
这叫做: system.teamcity.build.tempDir
然后我在神器路径上使用它,但有一些调整:
%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"文件。
" => errorScreenshots ":这告诉TeamCity在Artifacts视图中创建一个文件夹,如果你显示了很多工件,它是必要的。过去常常把事情弄清楚。
希望您觉得此回复有用。
干杯!