2016-07-07 5 views
1

TL; DR; Как легко запустить тесты класса в Intellij, чтобы они выполнили этап validate в maven и установили все свойства Spring.Комплект для испытаний в Intellij

Я импортировал проект maven в Intellij. Тесты выполняются с использованием surefire, то есть mvn surefire:test -Dtest=SomeTest. Некоторым из этих тестов должен быть назначен порт. Spring свойство с номером порта устанавливается на validate фазе с помощью:

<plugin> 
    <groupId>org.sonatype.plugins</groupId> 
    <artifactId>port-allocator-maven-plugin</artifactId> 
    <executions> 
     <execution> 
      <phase>validate</phase> 
      <goals> 
       <goal>allocate-ports</goal> 
      </goals> 
      <configuration> 
       <ports> 
        <port> 
         <name>my-first-port</name> 
        </port> 
       </ports> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Когда я запускаю тест с Intellij через Right click on file > 'Run SomeTest' он терпит неудачу для испытаний, требующих my-first-port. Видимо, фаза validate не запускается.

Я хочу иметь возможность запускать тесты на одном классе с минимальным количеством щелчков. Мне нужно либо:

  • каким-то образом запустить validate фазу, когда Right click > 'Run SomeTest' происходит, или
  • создать в конфигурации Maven выполнения IntelliJ, которые могут быть запущены на одном классе, используя команду как mvn surefire:test -Dtest=$CLASS_NAME$, но я понятия не имею, если каких-либо свойств ($CLASS_NAME$ будет классом имени открытого класса)

Любые идеи?

ответ

0

Я нашел частичное решение во внешних инструментах IntelliJ. Я могу легко настроить там cmd /C mvn test-compile surefire:test -Dtest=$FileClass$. Благодаря этому я могу запустить одиночный тест с 3-х нажатием на Tools > External Tools > MyTool.

Большой недостаток заключается в том, что я не могу отлаживать тесты таким образом. К сожалению, для запуска конфигурации нет макроса $FileClass$, поэтому мне все равно придется настраивать отдельную конфигурацию запуска для каждого класса всякий раз, когда я его отлаживаю.

1

По умолчанию intellij не будет запускать какие-либо материалы maven при запуске тестов, и то, что вы просите, вероятно, не будет работать (afaik).

Однако, возможно, есть еще один способ добиться этого. Плагин генерирует случайный порт и назначает его данной переменной. Он используется для одновременного запуска нескольких тестов в одном окне и конфликтов портов. Когда вы запускаете тест вручную, у вас, вероятно, нет такого же ограничения, и вы можете запустить его на известном порту. Для этого вы можете использовать диалог конфигурации тестового запуска IntelliJ, чтобы установить значение my-first-port на известное значение (скажем, 56789).

+0

Проблема в том, что порт был всего лишь примером, и я не хочу моделировать все действия из фазы проверки pom в интуитивной конфигурации. –