Intellij Idee "Move Refactoring" mit Junit-Tests

8

Scheint, wenn ich "move" Refactoring machen alle meine junit Tests liegt an seinem alten Platz. Oft teste ich "package" sichtbare Klassen, so dass sie unsichtbar werden, wenn SUT zu einem anderen Paket wechselt.

Bewegen Sie Tests von Hand?

    
dmitrynikolaev 13.07.2009, 10:22
quelle

2 Antworten

2

Ich habe 4 Optionen für Sie:

  1. Gehen Sie zur "Package" -Ansicht auf der linken Seite, wählen Sie beide Dateien aus und drücken Sie dann F6. Es sollte sie beide an den richtigen Ort bewegen.

  2. Machen Sie die Klasse vorübergehend öffentlich, bevor Sie Ihren Refactor machen, und wechseln Sie danach zurück.

  3. Versuchen Sie zuerst, den Test zu verschieben. Ich glaube mich daran zu erinnern, dass das Vermeiden von Abhängigkeiten vermieden wird.

  4. Es gibt ein Plugin (ich denke, es ist toggleTest oder unitTest - ich hatte beide installiert), die den Move-Refactor patchen, um auch den Test mitzubringen. Hat super funktioniert. Leider sieht es so aus, als könnten diese nicht mit der neuesten IDEA funktionieren.

ndp 26.08.2009, 05:15
quelle
0

Das von Ihnen beschriebene Verhalten ist völlig normal.

%Vor%

In Ihrem ATest.java gibt es ein import package1.A; .
Nach dem Refaktorieren sieht das so aus:

%Vor%

Der Testcode blieb wo er war. Sie haben den Testcode nicht verschoben, sondern Ihren Quellcode. Es sollte keine anderen Ordner beeinflussen (wie in Ihrem Beispiel).
Die Referenz in ATest.java muss jetzt import package2.A; sein. Ansonsten ist das Refactoring falsch gelaufen.

Trotzdem sollten Ihre Tests funktionieren, auch wenn sie sich in einem anderen Verzeichnis befinden. Das liegt daran, dass der Import durch die Refactoring-Methode geändert wurde.

Wenn Sie Ihre Ordnerstruktur bereinigen möchten, müssen Sie das Paket test/package1 manuell in test/package2 umbenennen (ich weiß, das Paket ist package1 und package2 , aber ich möchte den Fokus auf die Ordnerstruktur.

Ich hoffe, ich könnte dir helfen!

    
guerda 14.07.2009 05:37
quelle

Tags und Links