Запуск веб-сервера jetty перед тестами на селенид

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

В модуле с веб-приложением я настроил плагин jetty для запуска сервера перед тестами.

 <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <configuration>
      <contextPath>web-app</contextPath>
        <stopPort>8005</stopPort>
        <stopKey>STOP</stopKey>
    </configuration>
    <executions>
      <execution>
        <id>start-jetty</id>
        <phase>pre-integration-test</phase>
        <goals>
          <goal>run</goal>
        </goals>
        <configuration>
          <scanIntervalSeconds>0</scanIntervalSeconds>
          <daemon>true</daemon>
        </configuration>
      </execution>
      <execution>
        <id>stop-jetty</id>
        <phase>post-integration-test</phase>
        <goals>
          <goal>stop</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

и отказоустойчивый-maven-плагин.

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>failsafe-maven-plugin</artifactId>
    <version>2.4.3-alpha-1</version>
    <executions>
      <execution>
        <goals>
          <goal>integration-test</goal>
          <goal>verify</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Но проблема в том, что плагин не находит никаких тестов, потому что они находятся в другом модуле.

Можете ли вы сказать мне, как настроить отказоустойчивость, чтобы найти тест в первом модуле? Или другое решение, например, запустить его от родителя?


person Mário Jaroš    schedule 18.03.2016    source источник
comment
почему бы не иметь военный модуль в качестве зависимости в тестовом модуле и запустить причал в тестовом модуле, где собственно тесты, чтобы все было в одном месте?   -  person A_Di-Matteo    schedule 18.03.2016


Ответы (1)


Ну, я не эксперт, возможно, JUnit @Rule поможет вам решить вашу задачу: инициализировать, развернуть и протестировать ваше веб-приложение.

Посмотри на это:

Как работает Junit @Rule?

Вики по правилам JUnit

Здесь описано правило запуска Причал-сервер

person Leonid Samarkin    schedule 20.07.2016