Bei Verwendung von ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe) hatte ich ein ähnliches Problem mit dem Right Click Scala Test Class-> Run As -> Scala Junit Test
Kontextmenü.
Ich habe versucht, die Klasse zu bearbeiten (aber nicht wegen eines Kompilierungsfehlers), zu bereinigen, das Projekt zu schließen und Eclipse zu schließen. Keiner von diesen hat das Kontextmenü für Klassen wiederhergestellt, die zuvor gut funktioniert hatten. Die Testklassen verwenden nicht die @Test
Annotation, sondern die @RunWith(classOf[JUnitRunner])
Annotation am oberen Rand der Klasse mit ScalaTest-Code.
Als ich versuchte, Scala Junit Test
direkt aus dem Starteditor für die Konfiguration der Konfiguration auszuwählen, erhielt ich den Dialog aus der Frage. Die Antwort von Footix29 war der Schlüssel für mich.
Ich bemerkte, dass meine Klassen im Verzeichnis / bin, obwohl ich mein Projekt einige Male bereinigt hatte, seit einiger Zeit nicht mehr neu erstellt wurden.
So kam ich zum Kontextmenü zurück und konnte Scala Junit Test
s erneut ausführen :
manually
bereinigte die Klassen durch Löschen des /bin/<package dir>*
Via-Explorers
Project -> Clean
das Projekt zusammen mit einem vollständigen Umbau
Ich vermute, dass eine Klassenbearbeitung im Allgemeinen in der Lage ist, einen gespeicherten Status von Eclipse zu bereinigen und wieder in Gang zu bringen. In meinem Fall waren alle zuvor von mir ausprobierten Arbeiterklassen gescheitert, sodass der manual
saubere Schritt genau der Hammer war, den ich brauchte. Es sollten jedoch auch andere Tricks funktionieren, die sich auf das Eclipse-Konzept des Klassenpfads / Build-Status auswirken.
Außerdem denke ich, dass dieses Verhalten teilweise durch den Versuch ausgelöst wurde, eine Scala-Klasse durch Umbenennen (an der die Scala Eclipse-IDE scheiße ist) umzugestalten, wobei die gesamte Bereinigung nach der ersten Dateiänderung manuell erfolgt. Es gab keine Build-Fehler, aber es gab auch keine Warnungen, die ich erwartet hatte, was bedeutet, dass definitiv etwas in den Build-Statusinformationen von Eclipse steckt.