"移動"リファクタリングを実行すると、すべてのjunitテストが古い場所に配置されているようです。私はしばしば "パッケージ"可視クラスをテストするので、SUTが別のパッケージに移動すると、それらは見えなくなります。Intellij Idea "Juniperテストでのリファクタリングの移動"
あなたはテストを手で動かせますか?
"移動"リファクタリングを実行すると、すべてのjunitテストが古い場所に配置されているようです。私はしばしば "パッケージ"可視クラスをテストするので、SUTが別のパッケージに移動すると、それらは見えなくなります。Intellij Idea "Juniperテストでのリファクタリングの移動"
あなたはテストを手で動かせますか?
私はあなたのための4つのオプションがあります!。
両方のファイルを選択し、左にある「パッケージ」ビューに移動し、F6キーを打つことがshoul d両方を適切な場所に移動します。
リファクタを実行する前に、クラスを一時的に公開してから、後で元に戻します。
最初にテストを移動してみてください。私は依存関係を壊さないように覚えているようです。
Move Refactorにパッチを当ててもらうためのプラグインがあります(toggleTestまたはunitTest - 両方ともインストールしていたと思います)。素晴らしい仕事をした。残念ながら、これらは最新のIDEAで動作しない可能性があります。
あなたの行動は完全に正常です。あなたのATest.java
import package1.A;
がありますで
src/package1/A.java
test/package1/ATest.java
。
あなたのリファクタリングした後、それは次のようになります。
src/package2/A.java
test/package1/ATest.java
彼があった場所テストコードが滞在しました。テストコードは移動していませんが、ソースコードは移動しませんでした。あなたの例のような他のフォルダには影響しません。
ATest.java
の参照はimport package2.A;
である必要があります。それ以外の場合、リファクタリングが間違っていました。
それでも、テストが異なるディレクトリにあっても、テストはうまくいくはずです。これは、リファクタリング方式によってインポートが変更されたためです。
あなたのフォルダ構造をクリーンアップしたい場合は、私が知っている(手動test/package2
にパッケージtest/package1
の名前を変更する必要があるパッケージはpackage1
とpackage2
ですが、私はフォルダ構造に焦点を強化したい。
私は、私はあなたを助けることを願っ
私はあなたの質問を理解できません。もう少し詳しくお聞かせください。それはこの質問に答えるのを助けるかもしれません(あなたがコメントできる+1) – guerda
私はクラスxxxのクラスAAAを持っているとします。クラスの宛先はsrc/xxx/AAA.javaで、test/xxx/AAATest.javaにあるテストがあるとします。 したがって、クラスAAAをパッケージyyyに移動すると、私のテストはxxxパッケージにとどまります。 – dmitrynikolaev