2016-07-17 11 views
0

私は、特に統合テストを実行するためのテストモジュールを持つマルチモジュールプロジェクトを持っています。 私は、同じクラスを実行しているときと同じパッケージを実行しているときにテストクラスパスが大幅に変化していることに気付きました。IntelliJテストのクラスパス:クラスとパッケージを実行しているときに異なる

検査から、テストモジュールの依存性(直接的または推移的)ではないクラスパスに、別のプロジェクトモジュール(およびその依存関係)が追加されているのがわかります。実際は依存していないデータベース移行ライブラリです他の何かによって。

誰かが、同じクラスの3つのクラスと1つのクラスを実行しているときにテストクラスパスが変わる理由を合理化することはできますか?

背景: のIntelliJのMaven

+1

どのように2つの実行のために、[クラスパス](https://www.jetbrains.com/help/idea/2016.1/run-debug-configuration-application.html#1)を設定しましたか? – Morfic

+0

@Morficどちらもデフォルト設定を使用します。単一のテストを実行するときは、モジュールクラスパスがデフォルトになります。パッケージを実行すると、オプションはグレー表示され、変更不可能になります。 – markdsievers

+0

@Morficドコリンクをありがとう。それは私に実験をさせて、私は結局それを解決しました。したがって、実行中のパッケージがすべての場合、デフォルトのテストクラスパスが出力されます。特定のパッケージからテストを実行する際に、特定のモジュールのクラスパスを明示的に設定するための設定を作成しなければなりませんでした。正しい方向への感謝をお寄せいただきありがとうございます。あなたのポイントを請求する答えを追加してください! – markdsievers

答えて

0

差がRun...実行構成セクションで見ることができ経由で実行しているとき テストは合格14.1.3。

パッケージのRun...オプションを使用して

は、パッケージ内のすべての Test kindデフォルトはしかし PackageRun...を呼び出すときに使用されるパッケージをデフォルトとしません。デフォルトの Use classpath of moduleはグレー表示されていました(そして、あなたが Packageを選択するまでそのままになります)ので、すべてのモジュールのクラスパスが使用されたように見えます。

Use classpath of moduleは、パッケージ内のすべてのテストを実行するときにクラスパスを修正するために必要なオプションでした。

enter image description here

関連する問題