by Guest » 22 Dec 2024, 21:01
Scheint, dass dies eine sehr „populäre“ Frage zu SO ist, für die es keine definitive Möglichkeit gibt, sie zu beheben, aber ich stelle die Frage trotzdem, weil ich einige weitere Details liefern kann. Ich verwende STS v3.4.0.RELEASE und TestNG v6.8.6.20141201_2240. Ich habe auch das ScalaIDE-Plugin für Eclipse 3.0.4.v-2_11-201407232043.
Ich habe einen einfachen Test (MusicalTest.java in meinem src/test/ java) und die entsprechende testsuite.xml-Datei, die diese Klasse mit der spezifischen einzubindenden Methode beschreibt. Ich führe die XML-Datei als TestNG-Test aus und es gibt keine Probleme, alles läuft wie erwartet; Meine testsuite.xml-Datei sieht in etwa so aus:
Jetzt erstelle ich eine neue Klasse (in meinem Fall habe ich eine Scala-Klasse im selben Paket wie der obige Test erstellt) mit dem Namen MusicalScalaTest.scala. Ich füge es wie folgt in meine testsuite.xml ein:
Wenn ich jetzt die XML-Datei als testNG-Test ausführe, erhalte ich die folgende Fehlermeldung:
org.testng.TestNGException:
Cannot find class in classpath: com.rock.and.roll.MusicalTest
at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
at org.testng.xml.XmlClass.init(XmlClass.java:73)
at org.testng.xml.XmlClass.(XmlClass.java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:543)
at ........
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Interessanterweise beschwert es sich nicht über den MusicalScalaTest, sondern stattdessen über den MusicalTest. Ich mache weiter und kommentiere die MusicalScalaTest-Klasse in der XML-Datei aus, weil ich denke, dass das die Ursache für die Verwirrung ist, aber beim Ausführen des testNG-Tests tritt derselbe Fehler erneut auf! Danach lösche ich die Klasse MusicalScalaTest.scala und lösche die „auskommentierte“ Zeile aus der XML. Keine Würfel. Ich klicke mit der rechten Maustaste auf das Projekt und führe „Ausführen als -> Mvn Clean“ aus. Keine Würfel. Ich starte meine IDE neu, führe ein Mvn Clean und Maven Update Project durch, gefolgt von einer Aktualisierung. Keine Würfel. Ich deinstalliere das testNG-Plugin, führe zur Sicherheit eine MVN-Clean-Testkompilierung durch und führe dann die üblichen Schritte des Maven-Update-Projekts durch, gefolgt von einer Aktualisierung. Dann installiere ich die testNG-IDE neu und probiere dasselbe XML aus. Keine Würfel.
Ehrlich gesagt riecht das nach einem Test-NG-Plugin-basierten Problem, das einen Fehler zwischengespeichert hat, den es nicht löschen möchte. Ich versuche, andere Testsuite-XML-Dateien desselben Projekts auszuführen, und alle beschweren sich über denselben Fehler! Im Grunde sind also alle meine TestSuite-XMLs außer Betrieb.
Hat jemand Empfehlungen für die nächsten Schritte? Ich versuche, das alles innerhalb der IDE zum Laufen zu bringen, anstatt zum Terminal zu wechseln und dort testNG auszuführen. Wenn Sie der Meinung sind, dass es sich zum jetzigen Zeitpunkt nicht lohnt, hinterlassen Sie trotzdem einen Kommentar.
Scheint, dass dies eine sehr „populäre“ Frage zu SO ist, für die es keine definitive Möglichkeit gibt, sie zu beheben, aber ich stelle die Frage trotzdem, weil ich einige weitere Details liefern kann. Ich verwende STS v3.4.0.RELEASE und TestNG v6.8.6.20141201_2240. Ich habe auch das ScalaIDE-Plugin für Eclipse 3.0.4.v-2_11-201407232043.
Ich habe einen einfachen Test (MusicalTest.java in meinem src/test/ java) und die entsprechende testsuite.xml-Datei, die diese Klasse mit der spezifischen einzubindenden Methode beschreibt. Ich führe die XML-Datei als TestNG-Test aus und es gibt keine Probleme, alles läuft wie erwartet; Meine testsuite.xml-Datei sieht in etwa so aus:
Jetzt erstelle ich eine neue Klasse (in meinem Fall habe ich eine Scala-Klasse im selben Paket wie der obige Test erstellt) mit dem Namen MusicalScalaTest.scala. Ich füge es wie folgt in meine testsuite.xml ein:
Wenn ich jetzt die XML-Datei als testNG-Test ausführe, erhalte ich die folgende Fehlermeldung:
org.testng.TestNGException:
Cannot find class in classpath: com.rock.and.roll.MusicalTest
at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
at org.testng.xml.XmlClass.init(XmlClass.java:73)
at org.testng.xml.XmlClass.(XmlClass.java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:543)
at ........
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Interessanterweise beschwert es sich nicht über den MusicalScalaTest, sondern stattdessen über den MusicalTest. Ich mache weiter und kommentiere die MusicalScalaTest-Klasse in der XML-Datei aus, weil ich denke, dass das die Ursache für die Verwirrung ist, aber beim Ausführen des testNG-Tests tritt derselbe Fehler erneut auf! Danach lösche ich die Klasse MusicalScalaTest.scala und lösche die „auskommentierte“ Zeile aus der XML. Keine Würfel. Ich klicke mit der rechten Maustaste auf das Projekt und führe „Ausführen als -> Mvn Clean“ aus. Keine Würfel. Ich starte meine IDE neu, führe ein Mvn Clean und Maven Update Project durch, gefolgt von einer Aktualisierung. Keine Würfel. Ich deinstalliere das testNG-Plugin, führe zur Sicherheit eine MVN-Clean-Testkompilierung durch und führe dann die üblichen Schritte des Maven-Update-Projekts durch, gefolgt von einer Aktualisierung. Dann installiere ich die testNG-IDE neu und probiere dasselbe XML aus. Keine Würfel.
Ehrlich gesagt riecht das nach einem Test-NG-Plugin-basierten Problem, das einen Fehler zwischengespeichert hat, den es nicht löschen möchte. Ich versuche, andere Testsuite-XML-Dateien desselben Projekts auszuführen, und alle beschweren sich über denselben Fehler! Im Grunde sind also alle meine TestSuite-XMLs außer Betrieb.
Hat jemand Empfehlungen für die nächsten Schritte? Ich versuche, das alles innerhalb der IDE zum Laufen zu bringen, anstatt zum Terminal zu wechseln und dort testNG auszuführen. Wenn Sie der Meinung sind, dass es sich zum jetzigen Zeitpunkt nicht lohnt, hinterlassen Sie trotzdem einen Kommentar.