2013-10-23 10 views
5

EclipseからIdeaに移行しようとしていて、JUnitsの実行に苦労しています。このアプリケーションは、10k + Javaクラスを持つレガシーアプリケーションです。IntelliJ Idea JUnitテストの実行中に "Make"が再構築される

私はJUnitを実行するたびに、コンパイルして実行するか、それを実行するか、その特定のJUnitクラスに対してClassNotFoundExceptionを与えます。

私はプロジェクトの完全なビルドを行っています(約9分かかります)。私は、ビルド後に変更されたファイルだけを "Make"の間に再コンパイルする必要があると思います。私の場合は、ファイルを変更していないので、JUnitはすぐに実行する必要があります。

私はIntelliJ Idea 12 Community Editionを使用していますが、コンパイラ設定で「Use External Build」を選択しました。

設定が間違っているか間違っていますか?

EDIT: のJUnitを実行している間、私は、出力クラスディレクトリを観察し、それが生成されたクラスを削除し、再度コンパイルされたように見えます!

答えて

3

IntelliJ IDEAは、実行しているテストとはまったく関係のないクラスにエラーがある場合でも、プロジェクト全体で単一のエラーが発生しないことが判明しました。 となる可能性があります。プロセスは、コンパイルエラーを含むファイルを再コンパイルする必要があると考えます。しかし、なぜそれがコンパイルされたクラスをクリアして、それを再コンパイルするのがなぜ私にとって謎なのか?

この問題を解決するには、がプロジェクトにであることを確認してください。すべてのコンパイルエラーを修正して完全に再構築したら、テストは起動するのに約2〜3秒かかります。

+0

これはIDEAのことではなく、javacのことです。そして、デフォルトではjavacを使ってコンパイルします。その動作を変更するには、Eclipseコンパイラーを使用するようにコンパイラー設定を変更します(コンパイル・エラーの移動は、Eclipse IDEの機能ではなくEclipseコンパイラーの機能です)。 _Compiler> Java Compiler> Use Compiler_で設定し、選択したものを使用して、下部にある[Proceed On errors]オプションを選択できます。私はあなたの元の問題を解決すると信じています。 (私はまだjavacコンパイラを使用しており、Eclipseコンパイラでしか遊んでいませんでした。) – Javaru

+1

これは*アイデアに固有のものです(Eclipseコンパイラを使用しています)。 Eclipseで同じプロジェクト(コンパイル・エラーあり)のテストを即座に実行できます。 – Manish

0

ちょうど同じように、我々は用語にコンパイルを使用していることを確認します、構築、再構築するために、ヘルプガイド(基本概念>コンパイラやビルダー>コンパイルタイプでコンパイルタイプを参照してください。)またはそのwebhelp equivalentを介して。

ユニットテストまたはアプリケーションを実行すると、IDEAはになります。になります。したがって、前回の実行以降に変更されたクラスのみをコンパイルする必要があります。潜在的な問題(特にレガシープロジェクトの場合)は、依存関係の解決にあります。 makeプロセスは、変更された依存関係もコンパイルします。プロジェクトにいくつかの循環的/十字依存がある場合、再帰的な依存関係チェックを「混乱させる」ことがあり、その結果、完全なモジュールまたはモジュールをコンパイルすることができます。それはあなたが走っている問題かもしれません。

ファイルが変更されていない場合でも、「理想的でない」従属マップが再コンパイルを引き起こす可能性があります。 makeプロセスがまだ実行されていることに注意してください。変更されたクラスをチェックし、コンパイルを開始するのはそのプロセスです。しかし、コードが変更されていない場合は、2〜2回かかります。チェック/試してみるべきこと:ユニットテストの実行/デバッグ設定(実行>設定の編集)の "起動前"セクションに "Make"があることを確認してください。 (これはデフォルトでなければならず、そのダイアログのDefaultセクションで変更することができます)。最後に、IDEAキャッシュ/インデックスを無効にして(ファイル>キャッシュ無効化)、IDEAを再起動することができます。再起動するとIDEAはプロジェクトのインデックスを再作成する必要があり、別の完全再構築を実行する必要があります。 可能インデックスに再コンパイルの原因となっている破損があります。

ちょっとしたことを確認するには、IDEA(12.1.6)の最新バージョンを使用していることを確認してください。

+0

ありがとうございます。 – Manish

2

JUnit設定を保存して編集すると、「起動前」セクションを編集できます。そこから "Make"を削除し、 "Make、no error check"を入れることができます。これは、ビルドのプロセスをスピードアップし、問題を解決するはずです。

テスト済みIDEA 13.1.5

+0

プロジェクト全体を作成したくない場合は、テストする部分だけを作成する場合は、これは機能しません。 Eclipseはこの素晴らしいことを処理し、IDEAは失敗に終わります。 – Gewure

関連する問題