17

実行可能jarとそのテストをNexusに公開するMavenビルドプロセスがあります。これらのjarファイル(実行可能ファイル+テスト)にアクセスしてテストを実行する必要がある別のMavenビルドプロセスがあります。

どうすればいいですか?これまでのところ、jarがクラスファイルに展開された場合にのみこれを行うことができました。私はMavenを初めて使用し、ドキュメントで完全に失われました。

4

3 に答える 3

11

Surefire と failsafe は現在、jar 内からのテストの実行をサポートしていません。

これは主に、テストを識別できない場合です。

テストを実行するには、2 つの方法があります。

  1. test-jar からのすべてのテストを一覧表示するテスト スイートを使用します。テスト スイートは src/test/java (より正確には target/test-classes にコンパイルされる) にあり、それが選択され、スイート内のすべてのテストが Surefire/failsafe によって実行されるため (スイート クラス名を想定) includes ルールに一致します: Test で開始または終了します)

  2. maven 依存関係プラグインの unpack-dependencies ゴールを使用して、テスト jar をターゲット/テスト クラスにアンパックします (これはハックの叫び声ですが、非常にうまく機能します)。

最初のオプションの主な問題は、スイートから 1 つのテストだけを実行するのは簡単ではなく、test-jar からすべてのテストに名前を付ける必要があることです。

そのため、私はオプション 2 を好む傾向があります...オプション 2 は、ビルド ツール プラグインの制限を回避するコードを記述することを意味しないという追加の利点があります...特定のビルド ツールに縛られないほど、より良い私見

于 2012-09-03T06:20:07.833 に答える
7

これは実際には、新しいsurefireおよびfailsafeプラグインで非常にうまく機能します。関連する質問を参照してください。

したがって、jar を解凍する必要はもうありません。スキャンする依存関係のグループとアーティファクト ID を指定するだけです (これは、「メイン jar」依存関係と「test-jar」依存関係の両方で機能します)。

于 2015-01-25T04:02:35.067 に答える
1

添付されたテスト jar は、テスト領域でのコードの再利用をサポートする他のプロジェクトで通常の依存関係として使用できますが、jar からテストを実行することはできません。ソリューションが本当に必要な場合は、jar からテストを開始するために、少なくとも 1 つのスイート (など?) を作成する必要があります。

于 2012-09-03T06:06:01.640 に答える