Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant

alex81

Mitglied
Hallo,

ich mache folgende merkwürdige Beobachtung.

1. Ich erstelle ein Projekt und das zugehörende JUnit-Projekt mit einem Ant-Script.
2. Ich starte die JUnit-Tests. An einigen Stellen treten Failures auf. Und zwar genau immer dann, wenn ein assertEquals auf zwei int-Werte genacht wird. Z.B.:
Java:
assertEquals(ErrorCodes.ERROR_XYZ, result.getStatusCode());
3. Um das ganze zu untersuchen, starte ich Eclipse und debugge den JUnitTest dort. Das assertEquals schlägt nun ebenfalls fehl, obwohl eindeutig beide Vergleichswerte ganz sicher identisch sind!!! Bitte beachten: Die class-Dateien, die Eclipse grade verwendet hat, sind durch das Ant-Script erstellt worden.
4. Und nun kommts: Wenn ich jetzt die JUnit-Klasse in Eclipse neu kompiliere, läuft der Test fehlerfrei durch!

Kennt jemand das Problem oder kann es erklären?
Vielen Dank!
Alexander
 
M

maki

Gast
Verwendet der Ant Complier dieselben Einstellungen für source/target wie der Eclipse Kompiler?
assertEquals basiert aus equals (wie der Name sagt), das kann bei Autoboxing (int -> Integer) und Auto-unboxing (Integer -> int) zu solchen Problemen führen.
 

alex81

Mitglied
Es werden die selben source/target Einstellungen von Eclipse und Ant verwendet. Es findet auch kein Autoboxing statt, es wird nur mit int gearbeitet. Seltsam ist ja, dass das assertEquals fehlschlägt, obwohl die Werte identisch sind. Das wird auch durch Log-Ausgaben bestätigt.
 

FArt

Top Contributor
Welche Version javac (JDK) verwendet der ANT zum compilieren und Eclipse?

Ich kann mir den Fehler auch nicht erklären, aber ich rate mal ganz wild und werfe mit 64-Bit gegen 32-Bit um mich (das ist eine reine Verschwörungstheorie, denn das kann ich mir eigentlich genau so wenig vorstellen!)....

In der Regel sitzt bei so etwas aber der Fehler davor ;-)
 

alex81

Mitglied
Habe die Lösung gefunden:
Das Ant-Script hat die Testklassen mit JUnit 4.4 im classpath kompiliert. JUnit 4.4 hat die Methode
Java:
assertEquals(long expected, long actual)

Mein Eclipse hat jedoch JUnit 3.8.1 integriert, dort gibt es diese Mehode nicht, statt dessen aber:
Java:
assertEquals(Object expected, Object actual)

Die Testklasse wurde anscheinend für long-Parameter kompiliert und funktioniert nicht mit Object. Kann das die Ursache sein? Wenn ich gleiche JUnit-Versionen (3.8.1) verwende, funktioniert es.

Das hängt wohl mit folgenden Änderungen mit JUnit 4.4 zusammen:
Bug fix (1715326): assertEquals now compares all Numbers using their native implementation of equals.
assertEquals(long, long) and assertEquals(double, double) have been re-introduced to the Assert class, to take advantage of Java's native widening conversions.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Seltsames Verhalten eines StringReaders Allgemeine Java-Themen 2
M JList seltsames verhalten. Allgemeine Java-Themen 5
K Seltsames Verhalten von byte[] und Strings Allgemeine Java-Themen 6
S Seltsames Verhalten von split() Allgemeine Java-Themen 3
MiMa seltsames Jahr aus Musik Metadaten ? Allgemeine Java-Themen 2
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
M JButton setEnabled(false) seltsames Ereignis Allgemeine Java-Themen 1
javamax2000 Sehr sonderbares Verhalten Allgemeine Java-Themen 6
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
Thallius Merkwürdiges Verhalten von Swingworker.cancel() Allgemeine Java-Themen 2
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
Tommy Nightmare Merkwürdiges Verhalten bei der Datenzuweisung Allgemeine Java-Themen 4
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
W LocalDateTime Verhalten unerklärlich Allgemeine Java-Themen 1
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
S Threads ThreadPoolExecutor eigenartiges verhalten Allgemeine Java-Themen 5
A Java Verhalten bei parallelem Aufruf derselben Methode?? Allgemeine Java-Themen 2
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
S getChildAt() Verhalten Allgemeine Java-Themen 4
S Frage zu Threads (Sichtbarkeit und Verhalten) Allgemeine Java-Themen 11
R Merkwürdiges Verhalten der equals Method Allgemeine Java-Themen 4
1 Collections Generics, internes Verhalten Allgemeine Java-Themen 16
S Collections Unverständliches Verhalten... Allgemeine Java-Themen 4
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
J Rätselhaftes Verhalten von Collections Allgemeine Java-Themen 5
M Unerklärliches Verhalten bei Variableninitialisierung Allgemeine Java-Themen 11
S Verhalten der Klasse TreeSet... Allgemeine Java-Themen 4
S Jar und Exe verhalten sich unterschiedlich unter Vista Allgemeine Java-Themen 8
spacegaier HeapSpace der VM ändern -> Verhalten von JARs und EXEs Allgemeine Java-Themen 10
M merkwürdiges Verhalten von JUnit4 Allgemeine Java-Themen 2
K Überschreiben von 'static'-Methoden hat anderes Verhalten? Allgemeine Java-Themen 2
A Streams: merkwürdiges Verhalten Allgemeine Java-Themen 7
A Streams - merkwürdiges Verhalten Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Junit Test Allgemeine Java-Themen 8
J Junit surefire: enrich test information Allgemeine Java-Themen 0
J Junit start surefire for manual testing Allgemeine Java-Themen 1
P No JUnit tests found Allgemeine Java-Themen 5
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
K Input/Output JUnit: Log Inhalte, falsche Assertion Allgemeine Java-Themen 2
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
AssELAss Junit-Tests für SQL-Veribindung sowie SQL-Queries? Allgemeine Java-Themen 3
O Maven - JUnit - H2 Allgemeine Java-Themen 1
M Selenium JUnit Tests (Auswahl von Testmethoden auswerten) Allgemeine Java-Themen 5
C JUNIT - ANT - build.xml Allgemeine Java-Themen 0
Airwolf89 JUnit: Vorschläge/ Best Practice Allgemeine Java-Themen 7
M JUnit Serverseitig? Wie geht sowas? Allgemeine Java-Themen 2
E JUnit wie Testergebnisse pro Test ("Test Report") erhalten? Allgemeine Java-Themen 1
B JUnit Zufalls Operation testen Allgemeine Java-Themen 1
P JUnit Allgemeine Java-Themen 2
B jUnit 4: Wie protokolliert man Testergebnisse? Allgemeine Java-Themen 1
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
M JUnit Test Suites Allgemeine Java-Themen 2
L JUnit - automatisiertes vs. manuelles Testen? Allgemeine Java-Themen 6
B Hilfe bei JUnit Test Allgemeine Java-Themen 1
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
A JUnit/Hashcode Problem Allgemeine Java-Themen 5
X Problem mit URLClassLoader und JUnit Allgemeine Java-Themen 3
N JUnit Allgemeine Java-Themen 13
M Junit Tests durchführen Allgemeine Java-Themen 18
M JVM Probleme JUnit Allgemeine Java-Themen 2
G NUnit Features in JUnit Allgemeine Java-Themen 2
darekkay (JUnit) Testdaten generieren - Framework? Allgemeine Java-Themen 2
A JUnit problem Allgemeine Java-Themen 9
T Organisation von Junit Testfällen? Allgemeine Java-Themen 2
M JUnit Tests vs. DBUnit Tests Allgemeine Java-Themen 3
P Klassen Junit test funktioniert nicht... Allgemeine Java-Themen 11
S Die Zeile die JUnit gerade ausführt lesen Allgemeine Java-Themen 15
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
U Fehler: Hauptklasse org.junit.runner.JUnitCore konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
J JUnit-Tests Zeichensatzproblem ? Allgemeine Java-Themen 2
J JUnit, TestCase vs "einfacher" Test Allgemeine Java-Themen 3
S [JUnit] Name von TestCase bekommen Allgemeine Java-Themen 4
1 JUnit Test Suit Allgemeine Java-Themen 2
T Junit-Tests in Java Klasse ausführen Allgemeine Java-Themen 26
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
M JUnit TestSuite erstellen Allgemeine Java-Themen 2
B JUnit und mehrere Instanzen der selben Applikation Allgemeine Java-Themen 4
G Testcases mit Junit auf private-Methode Allgemeine Java-Themen 7
G Input/Output System.in "umbiegen" für junit-Test Allgemeine Java-Themen 4
C JUnit und das Zulassen von RuntimeExceptions Allgemeine Java-Themen 5
ruutaiokwu junit mit annotations geht nicht? Allgemeine Java-Themen 5
T JUnit-Log auslesen Allgemeine Java-Themen 13
C JUnit Tests Allgemeine Java-Themen 4
fastjack JUnit Supplementary Classes Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben