2

Maven を呼び出して単体テスト (確実なプラグインを使用) と統合テスト (フェイルセーフ プラグインを使用) を行う Jenkins プラットフォームがあります。統合テストでエラーが発生すると、Jenkins はビルドが成功したと見なします。この動作は正常ですか?ビルドが不安定であると見なすことをお勧めします。より一般的には、Jenkins がビルドの結果を読み取って解釈し、ビルドが成功または不安定であると見なす方法を知っていますか? ネット上のどこかで、フェイルセーフ レポートを確実なレポート パスにリダイレクトする必要があることを読みました。私はidをしましたが、問題はまだここにあります。

pom.xml :

[...]
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.10</version>
      <configuration>
        <disableXmlReport>false</disableXmlReport>
      </configuration>
      <executions>
        <execution>
          <id>default-test</id>
          <phase>test</phase>
          <configuration>
            <includes>
              <include>**/tests/**</include>
            </includes>
            <excludes>
              <exclude>**/testsIntegration/**</exclude>
            </excludes>
          </configuration>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-failsafe-plugin</artifactId>
      <version>2.7.2</version>
      <configuration>
        <disableXmlReport>false</disableXmlReport>
        <reportsDirectory>${basedir}/target/surefire-reports</reportsDirectory>
        <includes>
          <include>com/acelys/conventionsJuridiques/*.java</include>
          <!-- ... inclure les tests Selenium  -->
        </includes>
      </configuration>
      <executions>
        <execution>
          <id>integration-test</id>
          <phase>integration-test</phase>
          <goals>
            <goal>integration-test</goal>
          </goals>
          <configuration>
            <includes>
              <include>**/testsIntegration/**</include>
            </includes>
            <excludes>
              <exclude>**/tests/**</exclude>
            </excludes>
          </configuration>
        </execution>
      </executions>
    </plugin> 
[...]

ジェンキンスの出力:

[...]
mojoStarted org.apache.maven.plugins:maven-failsafe-plugin:2.7.2(integration-test)
[INFO] 
[INFO] --- maven-failsafe-plugin:2.7.2:integration-test (integration-test) @ BaseContrats ---
[INFO] Failsafe report directory: C:\jenkins_home\workspace\Base Contrats EXT JS MAVEN\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.acelys.conventionsJuridiques.testsIntegration.connexion.TestConnexion

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 23.971 sec <<< FAILURE!

Results :

Failed tests: 
  testHomePage(com.acelys.conventionsJuridiques.testsIntegration.connexion.TestConnexion)

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
mojoSucceeded org.apache.maven.plugins:maven-failsafe-plugin:2.7.2(integration-test)
mojoStarted org.apache.tomcat.maven:tomcat6-maven-plugin:2.1-SNAPSHOT(tomcat-shutdown)
[INFO] 
[INFO] --- tomcat6-maven-plugin:2.1-SNAPSHOT:shutdown (tomcat-shutdown) @ BaseContrats ---
25 févr. 2013 09:32:08 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
25 févr. 2013 09:32:08 org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
25 févr. 2013 09:32:08 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

mojoSucceeded org.apache.tomcat.maven:tomcat6-maven-plugin:2.1-SNAPSHOT(tomcat-shutdown)
projectSucceeded BaseContrats:BaseContrats:1.0-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2:07.408s
[INFO] Finished at: Mon Feb 25 09:32:08 CET 2013
[INFO] Final Memory: 13M/51M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: BaseContrats:BaseContrats:1.0-SNAPSHOT @ C:\jenkins_home\workspace\Base Contrats EXT JS MAVEN\pom.xml]
[JENKINS] Archiving C:\jenkins_home\workspace\Base Contrats EXT JS MAVEN\pom.xml to C:\jenkins_home\jobs\Base Contrats EXT JS MAVEN\modules\BaseContrats$BaseContrats\builds\2013-02-25_09-29-58\archive\BaseContrats\BaseContrats\1.0-SNAPSHOT\BaseContrats-1.0-SNAPSHOT.pom
[JENKINS] Archiving C:\jenkins_home\workspace\Base Contrats EXT JS MAVEN\target\ConventionsJuridiques.war to C:\jenkins_home\jobs\Base Contrats EXT JS MAVEN\modules\BaseContrats$BaseContrats\builds\2013-02-25_09-29-58\archive\BaseContrats\BaseContrats\1.0-SNAPSHOT\BaseContrats-1.0-SNAPSHOT.war
channel stopped
Finished: SUCCESS
4

7 に答える 7

2

ドキュメントによると:

failsafe:verify は、アプリケーションの統合テストに合格したことを検証します。

maven-failsafe-plugin 実行にゴールを追加する必要があります。

<goals>
   <goal>integration-test</goal>
   <goal>verify</goal>
</goals>

これにより、Jenkins はテスト結果を解釈し、ビルドを不安定としてマークできます。

于 2013-10-22T15:16:28.410 に答える
1

maven が SUCCESS で終了したことがわかります。これにより、Jenkins も成功して終了します。

ビルドを不安定としてマークするには、テスト結果を分析し、ビルドを失敗または不安定としてマークするビルド後のアクションが必要です。テスト結果を処理し、必要に応じてビルドをマークするための Jenkins ビルド後のアクションの詳細を検索することをお勧めします。

お役に立てれば。

于 2013-02-25T09:24:27.077 に答える
0

ビルドに「publish Junit report」というステップを追加する必要があります。すべてのテスト結果を示すグラフが表示されますが、テストが失敗した場合は正しいビルド結果も設定されます。

于 2013-02-25T11:16:17.857 に答える