OpenWrap: тестовая упаковка, как она работает? - PullRequest
1 голос
/ 28 октября 2011

Я использую бета-версию OpenWrap 2.0. OpenWrap содержит поддержку для запуска юнит-тестов, мой вопрос, как именно это работает?

Должен ли я видеть его как бегуна, который берет встроенную упаковку, ищет тесты, включенные в оболочку, и пытается их запустить? Обязательно ли включать тесты внутри упаковки?

Как работает разрешение зависимостей в контексте тестов? Я могу указать область тестов, которая добавляет дополнительные зависимости, необходимые для тестов. Когда используются эти зависимости? Я предполагаю, что он используется для создания тестовых проектов и запуска тестов с помощью test-wrap? Однако, когда я включаю тесты в обертку, не должны ли эти зависимые области теста также считаться зависимостями для обертки, или они используются только как зависимости, когда я пытаюсь выполнить «test-wrap»?

Еще одна вещь, которая меня интересует в контексте тестов, это разница между зависимостями времени компиляции и времени выполнения.

В качестве примера у меня есть проект API, который определяет API. Рядом с этим проектом у меня есть 2 других проекта Impl1 и Impl2, каждый из которых определяет свою реализацию этого API. И рядом с этим у меня есть тестовый проект API.Tests, который содержит тесты на API. В тестах используется внедрение зависимостей для внедрения либо Impl1, либо Impl2 для запуска тестов. В этом случае проект API.Tests имеет только зависимость времени компиляции от API (и должен иметь такую ​​зависимость только как зависимость времени компиляции). Однако при выполнении тестов проект во время выполнения зависит от Impl1 или Impl2. Любые предложения о том, как упаковать это?

1 Ответ

0 голосов
/ 31 октября 2011

test-wrap сможет запускать тест-бегун для тестов, которые отправляются как часть pacakge (в /tests).

Реализация сейчас уже не актуальна, в основном потому, что в пакеты не входит тестовый прогон testdriven.net, что делает выполнение этих тестов довольно сложным. По этой причине я еще не пересмотрел наши планы на этот счет.

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

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

Тот же механизм будет

...