次のコマンドとpom.xmlスニペットを使用して、キュウリケース(機能ファイルのtag@abcなど)で統合テストを実行します-
pom.xml スニペット:
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*.class</include>
</includes>
<systemPropertyVariables>
<job.host.name>server-t10</job.host.name>
<job.email.notification>abc@abc.com</job.email.notification>
<cucumber.options>--format pretty --format
html:target/cucumber/cucumber-html</cucumber.options>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
...
テスト ケースを実行する mvn コマンド:
mvn clean integration-test -Dcucumber.options="--format pretty --format html:target/cucumber/cucumber-html1 --tags @abc" -Djob.host.name=server-t10
ケースが実行され、すべてのレポートが生成され、すべてが正常に機能します。テストケースのカバレッジを取得しようとすると、問題が発生します。
cobertura-maven-plugin とバージョン 2.5.2 を使用して (ant instrumnet/report を使用せずに) cobertura カバレッジ レポートを生成するために可能なすべての組み合わせを試しましたが、レポートも .ser ファイルも何も作成しません。ログのみがそれを示しています-インストルメントするファイルがなく、何もしません。
戦いに負けて、やっと cobertura (1.9.4.1) をダウンロードし、カスタムの cobertura.xml を作成しました。そして、exに対して次のantコマンドを実行すると-
ant -f cobertura.xml instrument
mvn clean integration-test -Dcucumber.options="--format pretty --format html:target/cucumber/cucumber-html1 --tags @abc" -Djob.host.name=server-t10
ant -f cobertura.xml report
幸いなことに、すべてのレポート/.ser ファイルなどが作成されます。ただし、すべてを実行した後、使用されているすべてのクラスの最終的なカバレッジ レポートにゼロ カバレッジが表示されます。これは、(私が思うに) mvn コマンドが、ant インストゥルメントによって作成された cobertura.ser を使用/操作しなかったためである可能性があります。
だから、これで私を助けてください、私がpom.xmlに何かを入れて、mvnコマンドを実行すると、インストルメント化されたファイル(ant insturmentコマンドによって生成された出力)を使用して更新するようにします。そのファイルを、ant レポートを使用したレポート生成に使用できるようにします。考えられるすべてのエントリを pom.xml に入れてみました。しかし、それは役に立ちませんでした。
注: cobertura-maven-plugin を機能させようとしてすべての努力が無駄になったため、この特定の解決策を探しています。理由はわかりませんが、このプラグインは、レポートを作成したり、ケースを実行したりするのにうまく機能しません。