surefire-report
プラグインは、私の作業スタイルに非常に適していません。私は常にプロジェクトをクリーンアップしており、ブラウザでテストレポートを確認するたびに、サイト全体を再構築するために5分を費やしたくありません。
「mvn surefire-report:report-only
」と入力すると、生成されたレポートが見にくくなり、読みにくくなります。
私が探しているのは、antのJUnitReportタスクのようなものです。すでに利用可能なものはありますか?
実際、各ビルドでサイト全体を生成することは明らかに選択肢ではありません。しかし、問題は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プラグインの実行を妨げる)については考えていませんでした。だから、どちらか:
AntRunプラグインをtest
フェーズにバインドしないでください。構成をexecution
の外に移動し、必要に応じてコマンドラインでmvn antrun:run
を呼び出してレポートを生成します。
または、テストmojoの testFailureIgnore
オプションを使用し、surefireプラグイン構成でtrueに設定します。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
または、-Dパラメータを使用してコマンドラインからこの式を設定します。
$ mvn test -Dmaven.test.failure.ignore=true
オプション#1が最良のオプションだと思います。必ずしもレポートを生成する必要はなく(特にテストに合格した場合)、それらを体系的に生成すると、長期的にビルドが遅くなる可能性があります。 「オンデマンド」で生成します。
これが私がすることです:
# 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秒で実行されます。
お役に立てば幸いです。楽しい!
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を使用しています。ただし、テストが失敗したときにテストレポートを生成する方法はまだ見つかりません。どうすればいいですか?
新しいmaven実行構成を作成し、目標=>
surefire-report:report site -DgenerateReports=false
これは、CSSを使用してレポートビューを改善するのに役立ちます。
これが私がゴールを使ってどのようにしたか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>
-Dmaven.test.failure.ignore=true
テストが失敗したときにテストレポートを生成します。
以下のコマンドを実行します
mvn clean install surefire-report:report
レポートは以下の場所にあります
{basedir}/target/site/surefire-report.html
詳細については、以下のリンクを参照してください
http://maven.Apache.org/surefire/maven-surefire-report-plugin/usage.html