web-dev-qa-db-ja.com

IntelliJで単体テストを実行するIDEA複数のモジュールから一緒に

2つ以上のIDEAモジュールからすべてのテストを一度に実行するにはどうすればよいですか?

私は多くのモジュールを使用していますが、すべての単体テストを頻繁に実行することが重要です。実行するフォルダーを複数選択すると、コンテキストメニューに[実行]オプションがなくなります。

74

最良の方法:(3年後に編集)

これを達成するためのさらに良い方法があります。

  1. メニューの「実行」→「構成の編集...」を選択します。左上隅にある緑色のプラス記号をクリックして、JUnitを選択します。

  2. [パターンの種類]で[テストの種類]を選択し、表示されるとおりにこの正規表現を入力します:^(?!.*IT$).*$(キャレット^で始まり、ドル$で終わります)。この正規表現は、名前がITで終わっていないすべてのテストです。

  3. [テストの検索]から[プロジェクト全体]を選択します。作業ディレクトリは、トップモジュールの作業ディレクトリに設定する必要があります(デフォルトで設定する必要があります)。

  4. 「すべてのユニットテスト」などのテストの名前を入力します。また、この構成が後で消えないように、「共有」オプションにマークを付けることも好みます。 [適用]および[OK]をクリックします。

ニーズに合わせてこの正規表現を試すことができます。

元の回答:

快適ではありませんが、実行可能です。

  1. 最初のモジュールを選択し、test/Javaディレクトリを右クリックして[すべてのテストを実行]を選択します。テスト構成を作成します。
  2. [構成の編集]を選択し、新しく作成された構成で[共有]をオンにして保存します。
  3. 2番目のモジュール「すべてのテストを実行」を選択し、この構成でも「共有」をチェックします。
  4. [起動前]セクションで、[+]をクリックして[別の構成を実行]を選択し、最初のモジュールの構成を選択します。

この方法で、構成を順番に実行し、すべての構成に新しいタブを取得します。それでも、何もないよりはましです。

94

「実行構成」を作成する必要があります。

  1. 「Make」ボタンの右側にある上部のドロップダウンに移動してクリックします
  2. 「構成の編集」を選択します
  3. 「+」ボタンをクリックして、新しい実行構成を追加し、JUnitを選択します
  4. 次に、「実行構成」を構成すると、「テストの種類」ドロップダウンが表示され、「ディレクトリ内のすべてのクラス」を選択します
  5. ルートとして使用するディレクトリを選択します。プロジェクトの最上位ディレクトリまたはモジュールの任意のディレクトリを選択できます。
  6. クラスパスを取得する場所からIntelliJモジュールを選択します(クラスパスがある場合、トップレベルのプロジェクトになります)
20

私にとっては、両方のソリューションが機能しなかった、または機能しなかったことが予想されました。

私には3つのモジュールがあります。私のモジュールの依存関係は次のようになります

プレゼンテーション->ドメイン->データ

すべてのテストを一緒に実行したかっただけです。そこで、「モジュール間の依存関係」アプローチを思いつきました

私の設定は次のようになります。

enter image description here

5

私が見つけた最も簡単な方法は、すべてのモジュールを選択し、それらを右クリックして、すべてのテストを実行することを選択することでした。これにより、"Whole Project"という設定が作成され、いつでも再実行できます。

これは、モジュールごとに単体テストを実行するため、受け入れられた答えよりも優れていることがわかりました。テストケースが実行時にモジュール固有のリソースを使用する場合、受け入れられた回答の最良の方法は機能しません。

すべてのモジュールを選択

Select all modules

右クリックして、すべてのテストを実行することを選択します

Right click and choose to run all tests

新しい実行構成を取得する

Get a new run configuration

4
Dave Thomas

それほど明白ではない別のケースは、複数のプロジェクトでコードカバレッジが必要な場合です。素朴な解決策は、複数のプロジェクトを選択し、それらのすべてのユニットテストを一度に実行することです。結局のところ、クラスパスが変更され、IntelliJに実行構成ごとに1つのクラスパスエントリがある場合、ユニットテストは失敗する可能性があります。この場合、プロジェクトで単体テストを連続して実行するだけで十分です。これは、IntelliJ(2017.2.5 Community Edition)を実行するたびに、収集したカバレッジを以前に収集したカバレッジの統計に置き換えるか、追加するかを尋ねるからです。

1
gabor

これは、複数のモジュールを持つプロジェクトでうまくいきました。

新しいJUnit実行/デバッグ構成を作成します。テストの種類:「パッケージ内のすべて」テストの検索:「プロジェクト全体」

作業ディレクトリも指定する必要があります。

1
Dan