2014-09-03 2 views
0

Я работаю над проектом, где я пытаюсь использовать Arquillian для тестирования интеграции. Наш проект использует Spring 4, Hibernate, и мы пытаемся интегрировать его с Arquillian. Мне не удалось найти подходящий пример проекта, объясняющего использование расширения Arquillium Spring в этой ссылке https://github.com/arquillian/arquillian-showcase/tree/master/spring В большинстве примеров можно задействовать тестирование бизнес-логики, создав JAR. В этой ссылке https://github.com/arquillian/arquillian-extension-spring Я нашел, как использовать Arquillian Spring Extension для тестирования веб-приложений, но не для примера.Wildfly Spring Arquillian - WAR развертывается и не развертывается без каких-либо исключений

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

Мы добавили конфигурацию arquillian для проекта. Первоначально мы планируем внедрить диспетчер объектов и выполнить тестирование уровня доступа DAO. Но мы думали, что у нас полностью развернутая WAR, поэтому позволяет настроить arquillian для всего тестирования, а не только для слоя DAO. Поэтому мы решили настроить то же самое.

Теперь я не создаю всю WAR снова, но используя существующую, без изменений в любом файле конфигурации. (Я знаю, что persistence-ds следует изменить и использовать соответствующим образом, но это можно сделать позже, используя maven). Таким образом, в настоящее время все мои файлы конфигурации (applicationContext, beans.xml, hibernate.xml, web.xml, mappings.xml ... и т. Д.) Являются такими же, как и в DEV env.

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

Следующая Опции Я могу попробовать это , Не использовать войну напрямую, а создавать ее с помощью ShrinkWrap путем добавления пакетов и зависимостей и т. Д .... Я не знаю, действительно ли это необходимо. Другой вариант, я могу выделить логический код из представления и создать JAR, а затем использовать @SpringConfiguration и посмотреть, работает ли он. Или отпустите Spring Extension и используйте простой CDI и посмотрите, работает ли он, но когда это придет к тестированию Spring MVC, мне, возможно, придется решить эту проблему.

+0

2. pom.xml https://gist.github.com/shrikanthavale/8cd19f2a6c3be8cc44be 3. Пример теста https://gist.github.com/shrikanthavale/b72e8c8348354db4d0c3 –

+0

1 Ошибка, (Maven -X), sysout структуры WebArchive - https://gist.github.com/shrikanthavale/ad4cc4015c53c98b64a2 Файлы конфигурации - Web.xml, ApplicationContext.xml, hibernate, xml, beans.xml, faces-config , mvc-dispatcherservlet, mappings.xml https://gist.github.com/shrikanthavale/273890d1cf844f28adc9 –

+0

Я смог исправить проблему Ar quillianServletRunner, изменив web.xml на 3.0 с 2.5, а не журналы развертывания и сервера, чистые, но все равно нет инъекции –

ответ

0

Так вот подробные ответы и вопросы, с которыми я столкнулся, если это помогает кто-то

Сначала я использовал, чтобы получить Arquillian Servlet Runner не найден, я понял, что проблема была в web.xml

С Servlet 3.0 , web.xml имеет функцию metadata-complete = "true", теперь эта функция улучшает время запуска сервера (Wildfly в моем случае), но то, что он также делает в Arquillian, является ArquillianServletRunner, который является сервлетом, остается незамеченным.

И я был точно такой же ВОЙНОЙ, как и для разработки, и, следовательно, проблемы.

Что мне нужно было сделать, это просто создать дубликат web.xml с метаданными-complete = false и поместить в src/test/resources и обновить мою войну развития и использовать ее для arquillian.

Теперь второй вопрос, это была ошибка с моей стороны. Поскольку мы использовали контейнер Spring, мы удалили подсистему Weld из standalone.xml сервера.

Но затем, когда я добавил контейнер для сварки назад, бобы начали вводиться с помощью аннотации @Inject.

Но я хотел бы, чтобы моя испытательная среда была точно такой же, как и для среды разработки, поэтому я добавил правильные зависимости от аркиллиновых пружин и снова удалил контейнер для сварки, и он все еще работал.

Итак, вот мое обновление pom.xml и arquillian.xml.

https://gist.github.com/shrikanthavale/ec96736e32df8b6985bb https://gist.github.com/shrikanthavale/8cd19f2a6c3be8cc44be

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