Почему мои артефакты, опубликованные во время сборки с использованием сообщения службы publishArtifacts, не отображаются в TeamCity? - PullRequest
5 голосов
/ 14 февраля 2012

Я создаю снимок экрана, когда мой сквозной тест NUnit не проходит, и я пытаюсь опубликовать его с TeamCity (агент сборки и сервер, работающий в Windows), используя следующее служебное сообщение (как описано здесь ), который я пишу Console.WriteLine из теста NUnit:

##teamcity[publishArtifacts 'C:\BuildAgent\work\xxxxxxxxxxxxxxxx\Path\To\My\Stuff\fail.png']

Я вижу строку в журнале сборки:

------- Stdout: -------
##teamcity[publishArtifacts 'C:\BuildAgent\work\xxxxxxxxxxxxxxxx\Path\To\My\Stuff\fail.png']

Но TeamCity не получаетфайл, или, по крайней мере, он не отображается в артефактах сборки.Как мне сделать эту работу?

Ответы [ 3 ]

0 голосов
/ 07 августа 2013

Вы можете попробовать Console.Write вместо Console.WriteLine (см. Ниже).

В любом случае, я думаю, TeamCity не перехватывает эти сообщения, потому что они являются «отчетами о тестах» и добавляются в журнал сборки как текст.выходные данные.

Мне кажется, что они не анализируются, а затем не интерпретируются поведением взаимодействия сценариев сборки из-за того, как они сбрасываются в журнал сборки.

Из сценария сборкиВзаимодействие (TC 7):

Служебные сообщения используются для передачи команд / информации о сборке на сервер TeamCity из сценария сборки.Для обработки в TeamCity они должны быть распечатаны в стандартный поток вывода сборки (в противном случае, если вывод не соответствует синтаксису служебного сообщения, он должен появиться в журнале сборки). В одном служебном сообщении не должно быть символа новой строки, оно не должно охватывать несколько строк .

Вы должны поместить свои тестовые артефакты в определенную папку и отложить публикациюпосле тестов.

Обратите внимание, что если вам не нужно динамически разрешать артефакт, вы должны использовать самый простой способ: Artifact paths в общих настройках конфигурации сборки.

0 голосов
/ 10 августа 2013

Используйте пакет NuGet, предоставляемый JetBrains, он позаботится обо всех тонкостях

NuGet Install TeamCity.ServiceMessages

На GitHub: https://github.com/JetBrains/TeamCity.ServiceMessages

0 голосов
/ 19 октября 2012

Попробуйте использовать относительные пути.Teamcity должен разрешить их по отношению к рабочему каталогу сборки.

...