web-dev-qa-db-ja.com

Maven用のまともなHTML Junitレポートプラグインはありますか?

surefire-reportプラグインは、私の作業スタイルに非常に適していません。私は常にプロジェクトをクリーンアップしており、ブラウザでテストレポートを確認するたびに、サイト全体を再構築するために5分を費やしたくありません。

mvn surefire-report:report-only」と入力すると、生成されたレポートが見にくくなり、読みにくくなります。

私が探しているのは、antのJUnitReportタスクのようなものです。すでに利用可能なものはありますか?

38
Y.H Wong

実際、各ビルドでサイト全体を生成することは明らかに選択肢ではありません。しかし、問題はmvn surefire-report:report-onlyがcss/*。cssファイルを作成しないため、醜い結果になることです。これはログインしています SUREFIRE-616 (何かが発生するわけではありません)。個人的には、私はHTMLレポートをあまり使用しないので、それに耐えることができますが、それは良い答えではないので、antタスク(*ため息*)に基づく回避策を次に示します。

  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <id>test-reports</id>
        <phase>test</phase>
        <configuration>
          <tasks>
            <junitreport todir="target/surefire-reports">
              <fileset dir="target/surefire-reports">
                <include name="**/*.xml"/>
              </fileset>
              <report format="noframes" todir="target/surefire-reports"/>
            </junitreport>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>ant</groupId>
        <artifactId>ant-junit</artifactId>
        <version>1.6.2</version>
      </dependency>
    </dependencies>
  </plugin>

更新:私の最初のアイデアは、レポートを生成するために「オンデマンド」でMaven AntRunプラグインを実行することでした...しかし、それは私が投稿したものではありません、私はバインドしましたtestフェーズに移行します...しかし、テストが失敗した場合(ビルドを停止してAntRunプラグインの実行を妨げる)については考えていませんでした。だから、どちらか:

  1. AntRunプラグインをtestフェーズにバインドしないでください。構成をexecutionの外に移動し、必要に応じてコマンドラインでmvn antrun:runを呼び出してレポートを生成します。

  2. または、テストmojoの testFailureIgnore オプションを使用し、surefireプラグイン構成でtrueに設定します。

    <plugin>
      <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <testFailureIgnore>true</testFailureIgnore>
      </configuration>
    </plugin>
    
  3. または、-Dパラメータを使用してコマンドラインからこの式を設定します。

    $ mvn test -Dmaven.test.failure.ignore=true
    

オプション#1が最良のオプションだと思います。必ずしもレポートを生成する必要はなく(特にテストに合格した場合)、それらを体系的に生成すると、長期的にビルドが遅くなる可能性があります。 「オンデマンド」で生成します。

27
Pascal Thivent

これが私がすることです:

# Run tests and generate .xml reports
mvn test

# Convert .xml reports into .html report, but without the CSS or images
mvn surefire-report:report-only

# Put the CSS and images where they need to be without the rest of the
# time-consuming stuff
mvn site -DgenerateReports=false

レポートのtarget/site/surefire-report.htmlに移動します。

テストの実行後、残りの2つは約3.5秒で実行されます。

お役に立てば幸いです。楽しい!

64
prasanna

Pascalのおかげで、やりたいことを行うための改善されたソリューションを見つけました。

<plugin>
    <!-- Extended Maven antrun plugin -->
    <!-- https://maven-antrun-extended-plugin.dev.Java.net/ -->
    <groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
    <artifactId>maven-antrun-extended-plugin</artifactId>
    <executions>
      <execution>
        <id>test-reports</id>
        <phase>test</phase>
        <configuration>
          <tasks>
            <junitreport todir="target/surefire-reports">
              <fileset dir="target/surefire-reports">
                <include name="**/*.xml"/>
              </fileset>
              <report format="noframes" todir="target/surefire-reports"/>
            </junitreport>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>org.Apache.ant</groupId>
        <artifactId>ant-junit</artifactId>
        <version>1.8.0</version>
      </dependency>
      <dependency>
        <groupId>org.Apache.ant</groupId>
        <artifactId>ant-trax</artifactId>
        <version>1.8.0</version>
      </dependency>
    </dependencies>
  </plugin>

このバージョンは、新しいバージョンのantを使用しています。ただし、テストが失敗したときにテストレポートを生成する方法はまだ見つかりません。どうすればいいですか?

4
Y.H Wong

新しいmaven実行構成を作成し、目標=>

surefire-report:report site -DgenerateReports=false

これは、CSSを使用してレポートビューを改善するのに役立ちます。

2
Sach_21590

これが私がゴールを使ってどのようにしたかsite maven-surefire:report

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.16</version>
                <configuration>
                    <showSuccess>false</showSuccess>
                    <outputDirectory>${basedir}/target/surefire-reports</outputDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <outputDirectory>${basedir}/target/surefire-reports</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

</project>
2
djangofan

-Dmaven.test.failure.ignore=trueテストが失敗したときにテストレポートを生成します。

2

以下のコマンドを実行します

mvn clean install surefire-report:report  

レポートは以下の場所にあります

{basedir}/target/site/surefire-report.html

詳細については、以下のリンクを参照してください

http://maven.Apache.org/surefire/maven-surefire-report-plugin/usage.html