2015-12-11 2 views
0

Тестирование Arquillian 1.9.final контейнера TOMCAT-EMBED-7, и я получаю сомнительные результаты в отношении создания WebArchive для тестирования.Аркильские файлы в пути к классам, хотя они не определены в WebArchive при выполнении тестов

В/SRC/основные/ресурсов, у меня есть несколько конфигурационных файлов, которые я не хотите использовать при работе интеграционные тесты, а я хочу, чтобы обеспечить именованные те, хранящиеся в/SRC/вставлять-ITEST/Ресурсы.

 org.jboss.shrinkwrap.api.Filter x = Filters.exclude(".*Test.*|.*xml|.*properties"); 
     WebArchive webArchive = ShrinkWrap 
      .create(WebArchive.class, "mytest.war") 
      .addPackages(true, x, "com.myapp") 
      //and some other additions 

Затем в конце процесса srhinkwrap, добавить конкретные тестовые файлы, я хочу использовать:

File n = new File("src/embed-itest/resources/test-log4j.properties"); 
    webArchive.addAsResource(n,"log4j.properties"); 

Однако поведение все еще работает, как будто он с помощью/SRC/главная/ресурсы/log4j.properties. Я проверял, что _DEFAULT_DEFAULT_mytest.war действительно имеет содержимое test-log4j.properties как log4j.properties, но при запуске тестов поведение походит на /src/main/resources/log4j.properties. (и это верно для других файлов конфигурации, таких как camelContext.xml, которые я пытался переопределить).

У кого-нибудь есть понимание? Я надеялся использовать возможность создания пользовательского WebArchive с конкретными файлами в архиве для более точного тестирования, но фактическое поведение похоже на то, что это была «стандартная» война, которая ограничивала то, что я считал отличной возможностью аркиллий ,

ответ

1

Я думаю, проблема заключается в том, что yo использует встроенный подход Tomcat, что означает, что вы делите JVM своих тестов с вашим экземпляром Tomcat. Я предлагаю вам попробовать в управляемом или удаленном режиме.

+0

Это может быть полезно для управления ожиданиями. К сожалению, я пытался избежать «создания» экземпляра tomcat (даже на том же компьютере, например, на сервере сборки Jenkins и, возможно, на разных версиях Tomcat 7.0.47 v 7.0.55 для разных проектов), поэтому он был доволен возможностью внедрения и он помещает файлы tomcat в/target/location для установки на лету. – dhartford

+0

Тогда вы можете использовать Arquillian Cube, чтобы ваш экземпляр Tomcat был заперт: https://github.com/arquillian/arquillian-cube – lordofthejars

+0

p.s. спасибо за комментарий к аркильскому кубу! – dhartford