696 Stimmen

Führen Sie eine einzelne Testmethode mit Maven aus

Ich weiß, dass Sie alle Tests in einer bestimmten Klasse ausführen können mit:

mvn test -Dtest=Klassenname

Aber ich möchte eine einzelne Methode ausführen und -Dtest=Klassenname.methodenname scheint nicht zu funktionieren.

3 Stimmen

Ich wäre auch daran interessiert zu wissen, wie man dies macht. Wenn ich es jedoch recht oft mache, denke ich, dass der Test möglicherweise ein Kandidat für eine eigene Klasse ist, sodass du die Syntax mvn test -Dtest=classname verwenden kannst.

0 Stimmen

Möchtest du wissen, wie man es nur über die Befehlszeile macht?? Oder würde es für dich funktionieren, ein IDE (Eclipse) zu verwenden?

1 Stimmen

Ich habe mir eine Befehlszeile angeschaut. Ich denke, das JUnit Eclipse-Plugin wird es Ihnen ermöglichen, dies zu tun.

3voto

Andriy Plokhotnyuk Punkte 7685

Neue Versionen von JUnit enthalten den Categories-Läufer: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html

Aber das Veröffentlichungsverfahren von JUnit basiert nicht auf Maven, daher müssen Maven-Benutzer es manuell in ihre Repositories einfügen.

1 Stimmen

Nicht schlecht. Aber ich sehe nicht, wie das die Frage beantwortet.

2 Stimmen

Subj wird ab Version 2.7.3 des Maven Surefire-Plugins unterstützt: maven.apache.org/plugins/maven-surefire-plugin/examples/…

3voto

bsk Punkte 31

Ab der Surefire-Plugin-Version 2.22.1 (möglicherweise früher) können Sie einen einzelnen Test mit der Testnamen-Eigenschaft ausführen, wenn Sie die testng.xml verwenden

Angenommen, Sie haben die folgende testng.xml

mit der pom.xml

    4.0.0
    [...]

        all-tests

    [...]

            org.apache.maven.plugins
            maven-surefire-plugin
            2.22.1

                    src/test/resources/testng.xml

                        testnames
                        ${selectedTests}

    [...]

Von der Befehlszeile aus

mvn clean test -DselectedTests=run-B-test

Weitere Informationen - Maven Surefire-Plugin mit TestNG verwenden

3voto

Sorter Punkte 8826

Sie müssen die JUnit-Testklasse und deren Methode angeben, die ausgeführt werden soll.

mvn test -Dtest=com.mycompany.AppTest#testMethod

https://metamug.com/article/java/build-run-java-maven-project-command-line.html#running-unit-tests

-4voto

Tim O'Brien Punkte 9292

Sie können eine einzelne Testklasse ausführen, aber nicht eine einzelne Methode innerhalb einer Testklasse. Sie verwenden den einfachen Namen der Klasse, nicht den vollqualifizierten Namen der Klasse. Also, wenn Sie einen Test in "org.sonatype.test.MyTest" haben und das der einzige Test ist, den Sie ausführen möchten, würde Ihr Befehlszeilenbefehl wie folgt aussehen:

mvn test -Dtest=MyTest

0 Stimmen

Ich habe die im vorherigen Kommentar beschriebene Lösung in einem einzelnen Modulprojekt getestet, daher trifft dieser Kommentar nicht zu.

6 Stimmen

Es könnte im Jahr 2009 wahr gewesen sein, als es ursprünglich beantwortet wurde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X