0

統合テストのようなものを作成しようとしています - groovy を使用してリクエストを送信し、回答を解析しています。また、jboss の起動と .ear のデプロイを自動的に行いたいと考えています。cargo plugin を使って jboss を起動できました。exec プラグインを使用して、フォルダーをデプロイする perl スクリプトを実行しようとしています。次のフェーズ - Groovy テストを実行しますが、このフェーズは ear がデプロイされるのを待たずに開始します。サーバーが jboss にデプロイされるのを待つフェーズを作成することは可能ですか? 私のポン:

<build>
    <plugins>
       <plugin>
          <groupId>org.codehaus.groovy.maven</groupId>
          <artifactId>gmaven-plugin</artifactId>
          <executions>
             <execution>
                <id>unpack-application-server</id>
                <phase>pre-integration-test</phase>
                <goals>
                   <goal>execute</goal>
                </goals>
                <configuration>
                   <source>${basedir}/src/main/script/appserver/unzip.groovy</source>
                   <defaults>
                      <installDirectory>${appserver.install.directory}</installDirectory>
                      <zipUrl>${appserver.zip.url}</zipUrl>
                   </defaults>
                </configuration>
             </execution>

             <execution>
                <id>prepare-application-server-configs</id>
                <phase>pre-integration-test</phase>
                <goals>
                   <goal>execute</goal>
                </goals>
                <configuration>
                   <source>${basedir}/src/main/script/appserver/${suffix}/postUnzipAction.groovy</source>
                </configuration>
             </execution>
          </executions>
       </plugin>
       <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven2-plugin</artifactId>

          <executions>
             <execution>
                <id>start-container</id>
                <phase>pre-integration-test</phase>
                <goals>
                   <goal>start</goal>
                </goals>
             </execution>
          </executions>

          <configuration>
             <wait>false</wait>
             <container>
                <containerId>${appserver.id}</containerId>
                <home>${appserver.home}</home>
                <timeout>6000000</timeout> <!--in ms-->
             </container>

             <configuration>
                <properties>
                   <cargo.servlet.port>${servlet.port}</cargo.servlet.port>
                   <cargo.rmi.port>${rmi.port}</cargo.rmi.port>
                   <!-- corresponds to -Djboss.bind.address=0.0.0.0 under jboss -->
                   <cargo.hostname>0.0.0.0</cargo.hostname>
                </properties>
             </configuration>
          </configuration>
       </plugin>

       <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <executions>
             <execution>
                <id>deploy-with-script</id>
                <phase>pre-integration-test</phase>
                <goals>
                   <goal>exec</goal>
                </goals>
                <configuration>
                   <executable>perl</executable>
                   <workingDirectory>.</workingDirectory>
                   <commandlineArgs>${deploy.pl.cmd} -x redeploy</commandlineArgs>
                </configuration>
             </execution>
          </executions>
       </plugin>
    </plugins>
 </build>
4

1 に答える 1

0
  1. 統合テストフェーズの前後にサーバーをセットアップして破棄します。次のようになります。

    <executions>
        <execution>
            <id>start-tomcat</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
        <execution>
            <id>stop-tomcat</id>
            <phase>post-integration-test</phase>
            <goals>
                <goal>shutdown</goal>
            </goals>
        </execution>
    </executions>
    
  2. 単体テストの名前を、surefire によってスキップされ、maven-failsave-plugin によって実行されるように *IT.java に変更します

于 2014-09-22T11:44:02.427 に答える