Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Testcase error: incompatible types
Guten Morgen zusammen,
bei mir tritt momentan beim Kompilieren der Testcases des Aufgabenblattes 3 folgender Fehler auf (am Beispiel des UnknownPublicTest):
$ javac -cp .:/usr/share/java/junit4.jar UnknownPublicTest.java UnknownPublicTest.java:12: error: incompatible types
@Test(timeout=1000)
^
required: Annotation
found: Test
1 error
Der Testcase vom Aufgabenblatt 2 (DeclarationsPublicTest.java) läuft ohne Fehler durch.
Zusaetzliche Informationen:
$ uname -a
Linux nuc 4.2.0-1-amd64 #1 SMP Debian 4.2.5-1 (2015-10-27) x86_64 GNU/Linux
$ java -version
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.2) (7u91-2.6.2-1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
$ java -cp /usr/share/java/junit4.jar junit.runner.Version
4.12
Kann mir jemand sagen, wo das Problem liegt?
Hast du vielleicht im gleichen Ordner (oder woanders im source/classpath) eine eigene Klasse namens Test herumliegen?
Edit: Lustig… für exakt den gleichen Code (mit eigener Klasse [m]Test.java[/m] im Ordner) sagen
- Java 1.7.0_85 (OpenJDK - CIP):
UnknownPublicTest.java:12: error: incompatible types
@Test(timeout=1000)
^
required: Annotation
found: Test
1 error
- Java 1.8.0_66 (Oracle):
UnknownPublicTest.java:12: error: incompatible types: Test cannot be converted to Annotation
@Test(timeout=1000)
^
1 error
@JohnDoe: In der Tat, die Datei gab es. Ich habe sie umbenannt, nun funktioniert der UnknownPublicTest.
Beim Kompilieren weiterer Testfaelle haben sich neue Fehler ergeben:
NewtonIterationPublicTests.java
edit: funktioniert.
Aufgabenblatt 4, RekursiveKunstPublicTest.java:
$ javac -cp .:/usr/share/java/junit4.jar RekursiveKunstPublicTest.java
RekursiveKunstPublicTest.java:47: error: cannot find symbol
assertNotEquals("you may cast too early", expectedWithWrongCast, newX);
^
symbol: method assertNotEquals(String,int,int)
location: class RekursiveKunstPublicTest
1 error
Wie sieht das mit dem Kompilieren der Testcases eigentlich aus, muss vorher die zu testende Datei bereits kompiliert sein, oder kann der Testfall auch einfach direkt kompiliert werden?
Was ich nicht alles auf deiner Festplatte sehen kann…
Wie du siehst, liegt der Fehler in deinem Code… Die musst du schon selbst fixen.
Dieser Bug wurde kurz vorher (vorhin um 11:11) gefixt => bitte den Testcase frisch von der Homepage runterladen oder einfach die zweite Zeile unter der ersten schon vorhandenen ergänzen:
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;