Как собрать и юнит тестировать с Ivy? - PullRequest
3 голосов
/ 09 декабря 2011

При модульном тестировании с Ivy лучше всего помещать тестовые зависимости в файл Ivy.xml для целевого двоичного файла, который вы создаете?Или они должны быть в отдельном файле Ivy.xml для тестового проекта, который вы создаете?

Я использую файлы сборки Ant на моем сервере сборки Jenkins.

Первоначально я планировал запустить тестовый модуль после сборки целевого двоичного файла, но затем мои загрузки в Artifactory были смущены, поскольку последнее разрешение ivy было сделано для тестовых зависимостей, а не целевого двоичного файла.

Если я помещаю тестовые зависимости в настоящий двоичный файл Ivy.xml, я получаю следующую ошибку:

"модуль не авторизован для зависимости от себя"

... но мойТест зависит от целевого двоичного файла, который я создаю.

Должен ли файл Ivy.xml тестового проекта фактически не указывать целевой двоичный файл как зависимость?

Обновить

У меня есть зависимости, теперь вIvy.xml целевого двоичного файла.

Я пометил новые зависимости как имеющие «тестовую» конфигурацию, чтобы отделить их от зависимостей, необходимых для целевого двоичного файла.

Сейчас я работаю над тем, как указать мой тестовый проект на двоичный файл, созданный при сборке целевого проекта.Я не уверен, что это технически проблема с Айви.

После того, как я соберу целевой двоичный файл, я должен иметь относительную ссылку пути от тестового проекта до целевого двоичного файла?

Другая идея состоит в том, чтобы опубликовать целевой двоичный файл в локальном кэше, а затем сослаться на него в целевом проекте.

Обновление 2

В итоге я использовал задачу ant copy для копирования двоичного файла, созданного из целевого проекта, в папку с зависимостями целевого проекта.Поскольку зависимости тестового проекта находятся в этой папке, целевой проект может найти целевой двоичный файл.

1 Ответ

1 голос
/ 13 декабря 2011

Согласен с комментарием Марка О'Коннора:

В целом, при работе с модульным тестированием рекомендуется запускать тесты скомпилированного кода перед его упаковкой.

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

Все это подразумевает, что тесты должны проводиться в одной и той же работе Jenkins. Вы можете создать обе библиотеки DLL, сделать так, чтобы они ссылались друг на друга, используя относительные пути, и выполняли тесты, все в одной работе. Затем вы можете загрузить свой бинарный файл в Artifactory, будучи уверенным, что он проходит тесты.

...