23

私たちのプロジェクトでは、Mavenを使用してjunitsとcoberturaの両方を実行します。私が直面している問題は、

  1. junitテストケースは2回実行されます。1回はjar作成プロセスの前で、もう1回はcoberturaカバレッジレポートを生成するためです。coberturaとjunitsをantで実行する場合、junitsを実行するのは1回だけです。これは、coberturaがjunitsと一緒に実行されるためです。上記のケースをMavenで構成する方法はありますか?「maven.test.skip」プロパティを使用してjunitをスキップできることはわかっています。しかし、これを行うと、junitxmlおよびhtmlファイルレポートを表示できません。
  2. また、Mavenで、バッチまたは並列で実行するようにju​​nitを構成する方法は?

ありがとう!

4

3 に答える 3

23

正確なページを見つけることはもうできませんが、最近、テストを 2 回実行することが良い考えである理由についての議論を読みました。引用された主な問題は、テストの精度に対する Cobertura バイト コードの変更の影響に関するものでした。場合によっては、コード実行のタイミングが重要になることがあります。バイト コードの変更により、JUnit で失敗したテストが Cobertura でのみ実行された場合に合格したり、その逆の場合があります。このため、テストを 2 回実行できるようにすることをお勧めします。引用された例のほとんどはマルチスレッド動作に関するものでしたが、バイトコードの変更がテストで問題を引き起こす可能性がある他のケースがあると思います.

于 2009-05-15T12:16:27.530 に答える
1

これは、レポートを作成できるように、レポートの実行にテストの実行が必要なために発生します。注釈を持たないサイト プラグインに「サイトのみ」のゴールがあった場合@requiresDependencyResolution test 、プロジェクトのフェーズにバインドできprepare-package、テストを 2 回実行しなくてもレポートが生成されます。

残念ながら、現在そのような目標はないようです (この件に関する私の質問を参照してください)。回避策の詳細については、質問に対する私の回答を参照してください。

于 2009-07-30T22:06:20.427 に答える
1

コンパイル スコープ参照として cobertura を追加してみてください。そして、ポンポンの関連部分を投稿してください。

于 2009-04-13T18:56:59.610 に答える