2016-09-09 2 views
1

Привет, У меня есть приложение загрузки весны, которое отлично работает из командной строки. Однако, когда я запускаю его из ide (intellij), он терпит неудачу при каждом HTTP-запросе. Проблема, с которой я сталкиваюсь, заключается в том, что из ide тестовая банка (в виде теста в maven) конфликтует с банком hk2, который у меня есть в моем приложении.Весенний ботинок с использованием тестовых ящиков в Intellij

Я не могу исключить классы hk2 из тестовой банки, поскольку она затенена.

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

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

Тест фляга testcontainers Postgres 1.1.5

Благодаря

ответ

1

Если вы готовы доверять testcontainers' hk2 shaded classes, то вы могли бы определить 2 Maven профилей, один для производства и один для теста, который я назвал hk2test. Профиль (активирован по умолчанию) включает в себя hk2, а hk2test включает в себя контрольные контейнеры. Они взаимоисключающие.

Определение 2 Maven профилей

<profiles> 
    <profile> 
     <id>production</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 

     <dependencies> 
      <dependency> 
       <groupId>org.glassfish.hk2</groupId> 
       <artifactId>hk2</artifactId> 
      </dependency> 
     </dependencies> 

    </profile> 

    <profile> 
     <id>unit test</id> 
     <activation> 
      <property> 
       <name>hk2test</name> 
      </property> 
     </activation> 

     <dependencies> 
      <dependency> 
       <groupId>org.testcontainers</groupId> 
       <artifactId>testcontainers</artifactId> 
       <scope>test</scope> 
      </dependency> 
     </dependencies> 
    </profile> 
</profiles> 

Активировать профиль испытателем Intellij

Чтобы использовать профиль из Intellj, перейдите в Maven Project зрения и выберите hk2test профиль.

Включите тестовый профиль из командной строки

$ mvn -Dhk2test test 
Смежные вопросы