2012-04-27 13 views
0

Jenkins CI Webアプリケーションのクライアントとして機能するJARファイルを作成しています。したがって、私のプロジェクトは、戦争パッケージングではなく、瓶包装をしています。しかし、統合テストでは、JenクラスをテストするためにJenkins WARをデプロイする必要があります。Maven:事前統合テストおよび統合後のテストフェーズでJARプロジェクトでプラグインを起動できない

私はcargo-maven2-pluginを使用しており、コマンドラインから "mvn cargo:run"を使ってJenkinsを起動できるように設定していますが、 "mvn install"を実行すると統合テストの段階に入りますJenkinsをCargoで立ち上げようとせずに。実際には、 "mvn install -X"の出力には "cargo"という単語は含まれていません。

私は貨物を事前積分テストと積分後テストに正しくバインドしたようですが、それはただ発火しません。

以下POM:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.phoenix.build</groupId> 
<artifactId>HostOp</artifactId> 
<packaging>jar</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <jetty.port>53657</jetty.port><!-- mnemonic: 'JENKS' on a telephone --> 
</properties> 
<name>Host Operations</name> 
<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.7.2</version> 
       <configuration> 
        <systemProperties> 
         <property> 
          <name>maven.output.dir</name> 
          <value>${project.build.directory}</value> 
         </property> 
        </systemProperties> 
        <excludes> 
         <exclude>**/*IntegrationTest.java</exclude> 
        </excludes> 
       </configuration> 
       <executions> 
        <execution> 
         <id>integration-tests</id> 
         <phase>integration-test</phase> 
         <goals> 
          <goal>test</goal> 
         </goals> 
         <configuration> 
          <skip>false</skip> 
          <excludes> 
           <exclude>none</exclude> 
          </excludes> 
          <includes> 
           <include>**/*IntegrationTest.java</include> 
          </includes> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.cargo</groupId> 
       <artifactId>cargo-maven2-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>start-container</id> 
         <phase>integration-test</phase> 
         <goals> 
          <goal>start</goal> 
         </goals> 
        </execution> 
        <execution> 
         <id>stop-container</id> 
         <phase>post-integration-test</phase> 
         <goals> 
          <goal>stop</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <container> 
         <containerId>jetty6x</containerId> 
         <type>embedded</type> 
         <systemProperties> 
          <JENKINS_HOME>target/test-classes/jenkins_home</JENKINS_HOME> 
         </systemProperties> 
        </container> 
        <configuration> 
         <properties> 
          <cargo.servlet.port>53657</cargo.servlet.port> 
          <cargo.jvmargs>-DJENKINS_HOME=target/test-classes/jenkins_home</cargo.jvmargs> 
         </properties> 
         <deployables> 
          <deployable> 
           <type>war</type> 
           <location>target/test-classes/jenkins.war</location> 
           <pingURL>http://localhost:53657/jenkins/view/All/newJob</pingURL> 
          </deployable> 
         </deployables> 
        </configuration> 
       </configuration> 
      </plugin> 
     </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.2</version> 
    </dependency> 
</dependencies> 
</project> 

私は、必要に応じてこれを火に取得できますか?

+0

プラグインが/ project/build/plugins要素にあり、誤ってプロファイル内に入れられていませんか?それは、私が数えることができないほど多くの時間を噛まれていますが、私はまだそれを行います。 –

+0

申し訳ございませんが、です。しかし、良い考えです。 –

+0

あなたが見ている通りに失敗した貨物プラグインだけに整えたポールを投稿できますか? –

答えて

1

あなたの投稿されたポームは私のために期待どおりに動作します。私はちょうど空のプロジェクトにそれを落とし、そして:Mavenの3.0.3でだ

$ mvn install 
[...] 
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ cargo-plugin-test --- 
[...] 
[INFO] --- maven-surefire-plugin:2.7.2:test (integration-tests) @ cargo-plugin-test --- 
[...] 
[INFO] --- cargo-maven2-plugin:1.2.1:start (start-container) @ cargo-plugin-test --- 
[INFO] [2.ContainerStartMojo] Resolved container artifact org.codehaus.cargo:cargo-core-container-jetty:jar:1.2.1 for container jetty6x 
[INFO] [beddedLocalContainer] Jetty 6.x Embedded starting... 
[...] 
2012-04-27 15:01:02.457:WARN::Web application not found target/test-classes/jenkins.war 
2012-04-27 15:01:02.457:WARN::Failed startup of context 
[...] 
2012-04-27 15:01:02.741:INFO::Started [email protected]:53657 
[INFO] [beddedLocalContainer] Jetty 6.x Embedded started on port [53657] 
[...] 

$ mvn --version 
Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600) 
Maven home: /home/ryan/dev/tools/maven 
Java version: 1.7.0_03, vendor: Oracle Corporation 
Java home: /home/ryan/dev/tools/jdk1.7.0_03/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.0.0-17-generic", arch: "amd64", family: "unix" 

が、私はそれがあるかもしれない他に何かわかりません。

+0

私は同じMaven版を使用しています。私の統合テスト(rm /src/test/java/com/phoenix/build/jenkins/*IntegrationTest.java)を取り除くと、Cargoが起動してシャットダウンします。それは明らかに私が実際にそれを必要としないときにのみ動作します。 –

+0

それは素晴らしいです。 –

+0

それは良くなる。私は、実際に何もしないテストを書いて、残りの部分を取り除くと、貨物を打ち上げることができることを知りました。だから私は他のテストの一つを取ってすべてをコメントアウトし、コメントを外したものを一つずつコメントしました。テストが半無限ループ(中にブレークしながら(真))を実行する場所が1つあります。それが半無限にとどまる限り、貨物は打ち上げられません。私がカウンターでループのために有限にすれば、それは貨物を開始します。どのように統合前のテスト段階はコード自体に依存していますか? –

関連する問題