Как настроить TeamCity для создания проектов на лету, а не экспортировать их? - PullRequest
1 голос
/ 31 января 2012

У меня есть тестовое решение (TestSolutionA), которое содержит тестовый проект (TestProjectA: содержит системные тесты с NUnit) и содержит ссылку на другой существующий проект (ProjectB), поскольку моему тестовому проекту необходимо прочитать некоторые классы этого проекта. например EmailHelper.

Структура папок в TFS:

*Root
**Tests
***References
***TestSolutionA
****TestProjectA
**ClassLibraries
***ProjectB

Папка References содержит сборки, такие как NUnit.dll и т. Д., Которые используются TestProjectA.

Теперь я настроил TeamCity так, чтобы он собирал TestSolutionA и запускал тесты TestProjectA. Это означает, что при построении TestSolutionA все файлы и папки, на которые есть ссылки в этом решении, извлекаются в «Каталог извлечения», а затем создается решение.

Проблема в том, что это тестовое решение создается медленно, потому что каждый раз, когда ему приходится извлекать / экспортировать все файлы и папки ProjectB на сервер TeamCity и перестраивать их, в то время как требуется только dll ProjectB, не все файлы / классы, которые есть в нем.

Проблема появляется больше, когда вовлечено больше внешних проектов.

Есть ли лучшее решение для ускорения сборки в таких сценариях, когда тестовый проект должен ссылаться на внешние проекты? например собирать сборку на лету, а не проверять / экспортировать ее на сервер TeamCity.

Не уверен, что это возможно.

Надеюсь, вопрос ясен.

Спасибо

1 Ответ

0 голосов
/ 31 января 2012

Что вам нужно сделать, это создать отдельную конфигурацию сборки TeamCity для ProjectB, которая собирает DLL и публикует ее как артефакт. Затем можно настроить конфигурацию сборки TestSolution таким образом, чтобы она зависела от артефакта от DLL-библиотеки ProjectB. Таким образом, вашей конфигурации сборки TestSolution вообще не придется извлекать какой-либо исходный код для ProjectB.

Некоторые полезные ссылки в документации TeamCity:

http://confluence.jetbrains.net/display/TCD65/Build+Artifact

http://confluence.jetbrains.net/display/TCD65/Artifact+Dependencies

...