2009-07-13 4 views
8

"移動"リファクタリングを実行すると、すべてのjunitテストが古い場所に配置されているようです。私はしばしば "パッケージ"可視クラスをテストするので、SUTが別のパッケージに移動すると、それらは見えなくなります。Intellij Idea "Juniperテストでのリファクタリングの移動"

あなたはテストを手で動かせますか?

+0

私はあなたの質問を理解できません。もう少し詳しくお聞かせください。それはこの質問に答えるのを助けるかもしれません(あなたがコメントできる+1) – guerda

+0

私はクラスxxxのクラスAAAを持っているとします。クラスの宛先はsrc/xxx/AAA.javaで、test/xxx/AAATest.javaにあるテストがあるとします。 したがって、クラスAAAをパッケージyyyに移動すると、私のテストはxxxパッケージにとどまります。 – dmitrynikolaev

答えて

2

私はあなたのための4つのオプションがあります!。

  1. 両方のファイルを選択し、左にある「パッケージ」ビューに移動し、F6キーを打つことがshoul d両方を適切な場所に移動します。

  2. リファクタを実行する前に、クラスを一時的に公開してから、後で元に戻します。

  3. 最初にテストを移動してみてください。私は依存関係を壊さないように覚えているようです。

  4. Move Refactorにパッチを当ててもらうためのプラグインがあります(toggleTestまたはunitTest - 両方ともインストールしていたと思います)。素晴らしい仕事をした。残念ながら、これらは最新のIDEAで動作しない可能性があります。

0

あなたの行動は完全に正常です。あなたのATest.javaimport 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の名前を変更する必要があるパッケージはpackage1package2ですが、私はフォルダ構造に焦点を強化したい。

私は、私はあなたを助けることを願っ

関連する問題