2011-01-14 3 views
3

Ich habe mehrere Module Maven-Projekt. Die Technologien, die ich verwende, sind Spring und Struts. Ich habe Testfall und führen Sie es als:Kann Änderungen in .java-Datei sehen, wenn Sie Junit mit Eclipse vor mvn installieren

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "classpath:applicationContextSimpleTest.xml" }) 
public class CurrencySpeakerTest 

Alles ist in Ordnung ... bis ich einige Änderungen in der Quelle zu machen ... Ich kann sie sehen, bis ich mvn install auf dem übergeordneten Projekt. Was ist los mit dir? Ich habe versucht, in die Debug-Konfiguration zu sehen, aber ich kann nicht den Ort, wo gesagt, auf compile Quelle statt .java Dateien zu suchen ... Ich denke, das ist der Grund, dass junit läuft die .class Dateien anstelle von echten ... jemand hat das eine Idee?


Ich habe 3 Module App ... Sie sind mit Eltern-Modul gebaut. Das übergeordnete Modul ist auch das importierte Projekt in eclipse. Ich mache die Änderungen in einem von drei Modulen im Testordner. Ich klicke auf Aktualisieren und ich mache das Eclipse-Projekt manuell (wenn ich es aktiviere, wird es nichts ändern). Ich führe den Test als JUnit mit Eclipse-Dialog aus. Eclipse scheint die Änderungen in der bearbeiteten Testdatei (.java) nicht zu sehen.

Vielleicht hat das etwas mit dem einen Hauptprojekt zu tun, das die anderen Module enthält? Was ist seltsam, dass ... wenn ich andere Klassen nicht im Test-Ordner bearbeiten und Web-App mit Tomcat-Plugin ausführen, sieht Eclipse die Änderungen dort?


Ich benutze mvn sauber und mvn installieren, aber das ist nicht das Problem. Ich benutze Eclipse, um den Test auszuführen, aber der Eclipse-Debugger kann die Änderungen im Code nicht sehen ... für zB wenn ich irgendwo System.out.println() hinzufüge und dort den Haltepunkt setze, führe ich den Test aus und Eclipse hört dort nicht auf es sieht irgendwie auf dem alten Code aus (ich nehme die .class-Datei an) ... oder wenn ich die Zeile lösche, editiere etwas String ... nichts ... es scheint auf die .class zu zeigen ... warum ist das? Aktualisieren und reinigen/erstellen Eclipse-Projekt funktioniert nicht.

+0

Könnten Sie ein wenig genauer sein. Wo machst du die Änderungen (in welchem ​​Projekt/Modul) und wo siehst du sie nicht? – gabuzo

+0

Schauen Sie in das Menü unter "Projekt", haben Sie "Projekt> Automatisch erstellen" aktiviert? Wenn nicht, versuchen Sie es. – Nishant

Antwort

0

Sie müssen eine saubere erste

mvn clean compile 

Sind Sie mit der Bearbeitung Java-Dateien außerhalb von Eclipse laufen? Wenn ja, müssen Sie möglicherweise f5 drücken, um es zu aktualisieren. (Normalerweise sollte es Änderungen erkennen)

Wenn nicht, verwenden Sie die automatische Build-Option in Eclipse?

2

Wenn ich das Ziel von meinem Modul löschen, wo ich den Test schreibe, habe ich die Ausnahme unten. Das macht meine Theorie wahr, dass Eclipse in kompilierten Code schaut und die Quelle nicht sehen kann ... Warum ist das so?

Class not found pl.erif.utils.CurrencySpeakerTest java.lang.ClassNotFoundException: pl.erif.utils.CurrencySpeakerTest at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Verwandte Themen