Warum ist mein Mockito-basierte unit test nicht ausführen in Eclipse?
Ich habe ein Maven-Projekt gelungen, die verwendet Mockito Spott in seine unit-tests. Ich kann laufen alle tests in einen Maven-build, und Sie laufen ohne Fehler (und weitergeben!). Allerdings, wenn ich mit der rechten Maustaste auf ein einzelnes test-Funktion, und wählen Sie "Ausführen Als" - > JUnit Test", habe ich eine Ausnahme java.lang.NoSuchMethodError: org.mockito.Mockito.doAnswer(Lorg/mockito/stubbing/Answer;)Lorg/mockito/stubbing/Stubber;
. Natürlich, der "fehlt" - Methode ist es, wenn ich Blick auf die Quellen, und wie ich schon sagte, die tests kompilieren und von der Kommandozeile aus gestartet.
Besten, die ich denken kann, ist, wenn Eclipse versucht zu "helfen" mir, indem eine veraltete Mockito Artefakt (ich bin mit 1.8.5 in mein Maven-Abhängigkeiten) für das JUnit-plugin, ähnlich wie die Maven-plugin-stick, den Sie mit einem oddball-version des Maven-runtime für bestimmte Aufgaben.
Ist dies das problem? Ist es etwas anderes? Kann ich dieses Problem beheben?
ETA: Offenbar kann es sich um eine bekanntes Problem. Es gibt eine gute chance, dass es stammt noch aus, die mehrere Versionen von Mockito in meinem classpath (danke Maven :-/). Ich glaube, ich habe mein Haus in Ordnung -- Eclipse können, führen Sie die tests jetzt-aber leider ist der bug gebissen hat meine Hudson. Ich habe auf die Spur, wie zu entfernen Sie das alte GLAS aus dem classpath auch dort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass die unit-test-classpath hat die richtige mockito. Sie können dies überprüfen, aus dem Dialogfeld ausführen. Btw, Eclipse ist nicht im Lieferumfang mockito, so vielleicht, Sie haben zwei Versionen davon. Werfen Sie einen Blick auf Ihre maven-dependency-graph und suchen Sie nach Duplikaten.
Ich hatte das ähnliche problem und ich fand, dass ich hatte beide "mockito-all 1.8.x" und "mockito-core-1.9.5" in meinem classpath. Ich war letztlich nur 1,9 aber irgendwie eclipse wurde, 1.8, bevor 1.9.5 in den classpath. Ich entfernte 1.8.x und es funktioniert 😉