2014-02-10 2 views
4

У нас есть приложение, которое использует сварку для CDI. Для наших тестов JUnit, мы запустим новый контейнер сварного шва, используя следующий трюк: WeldJUnit4RunnerДешевый способ сброса сварки?

Поскольку у нас есть много тестов, запуская их получают занять много времени, каждый раз, когда сварной шов для запуска и инициализации себя. Есть ли способ «сбросить» сварку, чтобы мы могли получить свежий WeldContainer без Weld, чтобы каждый раз пересканировать весь путь к классу?

+1

Единственное решение было бы поставить тест в одном классе тестов. Это то, что мы делаем при тестировании CDI с Arquillian –

+0

Я бы использовал CdiTestRunner (см. Http://deltaspike.apache.org/test-control.html) Это просто потрясающе! –

ответ

0

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

Это не сбрасывает сварку между испытаниями, но пока все ваши тесты находятся в одном модуле библиотеки/проекта/Maven, Weld запускается только один раз для всего набора тестов.

См. Getting Started With CDI Tests.

3

Короткий ответ: просто прекратите открытые контексты.

Подробный ответ: отличный и простой способ использования Weld Se для тестирования (модульный тест) предлагает проект DeltaSpike от самого Apache http://deltaspike.apache.org/.

В настоящее время я также участвую в разработке проекта с открытым исходным кодом, который предлагает вам удобный способ тестирования вашего приложения Java EE со всеми контейнерными службами непосредственно в модульном тесте через JUnit Runner. https://github.com/NeoMorpheus/BeanTest

также посмотреть на jglue.org/cdi-unit-user-guide/

Смежные вопросы