13

Intellijにマルチモジュールプロジェクトがあり、あるサブモジュールのテストソースに、別のサブモジュールで再利用したいキュウリの備品がたくさんあります。他のモジュールを依存関係として追加すると、その通常のouptutディレクトリはjunitクラスパスに追加されますが、テスト出力には追加されません。

intellijにモジュールのテストディレクトリをエクスポートさせ、他のモジュールがそれらを使用できるようにすることは可能ですか?

4

2 に答える 2

5

はい、できますが、簡単ではありません。

したがって、Module-AModule-Bがあります。

Module-Bには、TestClassおそらく AbstractClass を拡張するか、 Module-A のいくつかの静的ヘルパーを使用する があります

注:これは intellij でのみ機能します。maven または gradle を使用している場合は、これを確認する必要があります。

これがあなたがする必要があることです。

  1. プロジェクト構造に移動... (Ctrl+Alt+Shift+S - win/linux)
  2. モジュールに移動し、 Module-APathタブを見てください
  3. テスト出力パスをメモするか、これをコピーします。次のようなものである可能性がありますC:\dev\projects\myProject\moduleA\build\testclasses
  4. モジュールに移動し、モジュール Bを選択して、その[依存関係]タブを確認します。
  5. ここで、コンパイル時にModule-Aに既に依存している可能性がありますが、それで問題ありません。 +をクリックするか(Alt+Insert)、新しいライブラリを入力して追加します (オプションの 2 番)。
  6. ライブラリの選択画面で、[新しいライブラリ... ] ボタンを選択します。Javaオプションを選択します。
  7. ポップアップするダイアログで、上記のビルド フォルダーに移動し、 [ OKC:\dev\projects\myProject\moduleA\build\testclasses ] をクリックします。Module-Aのクラスがここにあります。適切な名前を付けて、 LevelオプションをModule Libraryに変更します。Module-A Tests
  8. +ボタンをクリックして(Alt+Insert)、ソースも追加します。テスト src ファイルに移動します。EG:C:\dev\projects\myProject\moduleA\src\testこれを追加すると、ソースも追加されます。
    1. [ OK ] をクリックすると、[プロジェクト構造] ダイアログに戻ります。
    2. これで、依存関係に新しいライブラリが追加されました。スコープテストに変更する
    3. 下部の [ OK]を押して完了です。プロジェクトを作成/クリーンアップする必要がある場合があります。

これで、モジュール間でテストの依存関係がリンクされました。

より良い解決策を考えられる場合はお知らせください。これが私が見つけた最も簡単な方法です。

于 2015-10-01T03:58:51.760 に答える
1

おそらくですが、IDE ではなく、自動ビルド、つまり Maven でこれを行う必要があります。Maven モジュールのテストを別の依存関係 (私が行っていること) として公開する場合、tests jar を他のモジュールの dep として追加できます。もちろん、IDEA はこれを自動的に処理します。

http://maven.apache.org/guides/mini/guide-attached-tests.html

于 2012-06-12T19:22:30.740 に答える