Testng: TestNG kann keine JUnit-Methodennamen von Spock finden

Erstellt am 1. Apr. 2014  ·  13Kommentare  ·  Quelle: cbeust/testng

Das Spock-Framework erstellt JUnit-Tests. Diese sollten über TestNG lauffähig sein. In der Klasse org.testng.junit.JUnit4TestMethod gibt es jedoch diesen Code:

    private static Method getMethod(Description desc) {
        Class<?> c = desc.getTestClass();
        String method = desc.getMethodName();
        try {
            return c.getMethod(method);
        } catch (Throwable t) {
            Utils.log("JUnit4TestMethod", 2,
                    "Method '" + method + "' not found in class '" + c.getName() + "': " + t.getMessage());
            return null;
        }
    }

Da die übergebene Beschreibung den Text des Spock-Tests enthält (etwa: "Das ist mein Spock-Test") und Spock die Testnamen verstümmelt, schlägt der einfache Aufruf "c.getMethod(method)" fehl. Wenn dies behoben ist, sollte TestNG auch Spock (JUnit)-Tests ausführen können.

junit

Hilfreichster Kommentar

@rumatoest Anstatt sich zu beschweren, könnten Sie Ihre Freizeit damit verbringen, dies zu debuggen / zu beheben. Ich habe es satt, dass Leute über brauchbare Tools/Frameworks nachdenken, die immer von einem großen Unternehmen gebacken werden. TestNG ist, wie @juherr sagt , ein Freizeitprojekt.

Da ich schon mit Spock in Kontakt treten wollte (immer eifrig Neues zu lernen), schaue ich mir das vielleicht beim nächsten Mal an.

Alle 13 Kommentare

Ich frage mich, warum TestNG versucht, die Method für den Test zu bekommen. Dies wird bei einigen Testframeworks, die einen JUnit-Runner implementieren, zu Problemen führen.

+1

+1

+1

+1

+1

+1

Dieses Ticket ist jetzt 2+ Jahre alt. Es hat noch nicht einmal jemand (EVER) zugewiesen! Was für ein kompletter Witz. Wenn jemand überhaupt den Einsatz von TestNG in Betracht zieht, sollten Sie sich der extrem schlechten Unterstützung bewusst sein, die zu erwarten ist. Ich wünschte nur, alle unsere Tests wären in JUnit...

Wir unterstützen das Testen in unserer Freizeit und haben andere wichtige Probleme behoben.

Aber das Projekt ist offen, warum versuchen Sie es nicht selbst zu reparieren? Wir helfen Ihnen gerne, eine Pull-Anfrage zu stellen.

Am Ende, und wie Sie sagten, ist JUnit auch eine Lösung (und ein gutes Projekt).

@blackduck-joe Ich habe mir das Problem angesehen und habe keine Ahnung, wie ich es beheben kann.

Aber Ihr Bedarf ist in Ihrem SO thead klarer , und wenn ich es gut verstehe, möchten Sie 2 Arten von Tests durchführen (spock/junit und testng).
Wenn Sie dann Maven verwenden, sollten Sie einen Blick auf https://groups.google.com/forum/#!topic/spockframework/ -iys4ARQrxk und/oder Ausführen von TestNG und JUnit-Tests werfen

Die konzeptionelle Notwendigkeit, junit zu meinem aktuellen Projekt hinzuzufügen, wird mich dazu führen, in nächsten Projekten nur junit zu verwenden.

@rumatoest Anstatt sich zu beschweren, könnten Sie Ihre Freizeit damit verbringen, dies zu debuggen / zu beheben. Ich habe es satt, dass Leute über brauchbare Tools/Frameworks nachdenken, die immer von einem großen Unternehmen gebacken werden. TestNG ist, wie @juherr sagt , ein Freizeitprojekt.

Da ich schon mit Spock in Kontakt treten wollte (immer eifrig Neues zu lernen), schaue ich mir das vielleicht beim nächsten Mal an.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen