Как развернуть WAR на JBoss-5.1.0.GA с помощью плагина cargo-maven и дождаться его развертывания перед запуском интеграционных тестов?

У меня есть веб-приложение maven (веб-сервисы Spring + ApacheCXF) и несколько интеграционных тестов (* IT.java). Я хочу запустить интеграционные тесты с помощью отказоустойчивого плагина, развернув военный файл с помощью плагина cargo-maven.

Вот моя конфигурация помпы:

<plugins>
     <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.0.3</version>
        <configuration>
          <container>
            <containerId>jboss51x</containerId>
            <home>C:/jboss-5.1.0.GA</home>
            <append>false</append>
            <log>${project.build.directory}/logs/jboss51x.log</log>
            <output>${project.build.directory}/logs/jboss51x.out</output>
            <timeout>300000</timeout>
          </container>
          <configuration>
            <type>existing</type>
            <home>C:/jboss-5.1.0.GA/server/default</home>
            <properties>
              <cargo.servlet.port>8080</cargo.servlet.port>
              <cargo.jboss.configuration>default</cargo.jboss.configuration>
              <cargo.rmi.port>1099</cargo.rmi.port>
              <cargo.logging>high</cargo.logging>
            </properties>
            <deployables>             
              <deployable>
                <groupId>${project.groupId}</groupId>
                <artifactId>admin-services</artifactId>
                <type>war</type>                
              </deployable>
            </deployables>
          </configuration>
        </configuration>
         <executions>
            <execution>
                <id>start-container</id>
                <phase>pre-integration-test</phase>
                <goals>
                    <goal>deployer-deploy</goal>
                </goals>
            </execution>
            <execution>
                <id>stop-container</id>
                <phase>post-integration-test</phase>
                <goals>
                    <goal>deployer-undeploy</goal>
                </goals>
            </execution>            
        </executions>
      </plugin>

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

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

С той же конфигурацией я могу успешно запустить интеграционные тесты в два этапа. 1. выполнить груз: развертывание-развертывание 2. выполнить интеграцию-тест

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


person K. Siva Prasad Reddy    schedule 26.10.2012    source источник


Ответы (1)


Я думаю, вы можете использовать параметр pingURL, чтобы указать URL-адрес для проверки завершения развертывания: см. http://cargo.codehaus.org/Maven2+Plugin+Reference+Guide

При использовании груза вам не нужно развертывать приложение, также поддерживается: http://cargo.codehaus.org/Functional+testing (но это, конечно, зависит от ваших тестов)

person wemu    schedule 30.10.2012