489 Stimmen

Wie führt man eine einzelne Testmethode mit PHPUnit aus?

Ich kämpfe damit, eine einzelne Testmethode mit dem Namen testSaveAndDrop in der Datei escalation/EscalationGroupTest.php mit phpunit auszuführen. Ich habe folgende Kombinationen ausprobiert:

phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=escalation/EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=testSaveAndDrop

In jedem Fall werden alle Testmethoden in der Datei escalation/EscalationGroupTest.php ausgeführt. Wie wähle ich stattdessen nur EINE Methode aus?

Der Klassenname ist EscalationGroupTest und die Version von phpunit ist 3.2.8.

47voto

Jignesh Joisar Punkte 11239

Für das Ausführen von PHPUnit-Tests in Laravel auf verschiedene Weise..

vendor/bin/phpunit --filter methodName className pathTofile.php

vendor/bin/phpunit --filter 'namespace\\directoryName\\className::methodName'

für den Test einer einzelnen Klasse :

vendor/bin/phpunit --filter  tests/Feature/UserTest.php
vendor/bin/phpunit --filter 'Tests\\Feature\\UserTest'
vendor/bin/phpunit --filter 'UserTest' 

für den Test einer einzelnen Methode :

vendor/bin/phpunit --filter testExample 
vendor/bin/phpunit --filter 'Tests\\Feature\\UserTest::testExample'
vendor/bin/phpunit --filter testExample UserTest tests/Feature/UserTest.php

für das Ausführen von Tests aus allen Klassen innerhalb eines Namespaces :

vendor/bin/phpunit --filter 'Tests\\Feature'

für weitere Möglichkeiten zum Ausführen von Testssiehe mehr

31voto

sectus Punkte 15258

Also so etwas

phpunit --filter 'EscalationGroupTest::testSaveAndDrop' EscalationGroupTest escalation/EscalationGroupTest.php 

Ohne = und mit '

https://phpunit.de/manual/3.7/de/textui.html

11voto

Sunil Prajapati Punkte 178

Angesichts dessen, dass du

vendor/bin/phpunit --filter=EscalationGroupTest::testSaveAndDrop

8voto

Tony Punkte 447

Wenn Sie in Netbeans sind, können Sie mit der rechten Maustaste auf die Testmethode klicken und auf "Fokusierten Testmethode ausführen" klicken.

Menü Fokusierten Testmethode ausführen

7voto

Amit Kumar Punkte 93

Sie können dies ausprobieren, ich kann einzelne Testfälle ausführen.

phpunit tests/{testfilename}

Zum Beispiel:

phpunit tests/StackoverflowTest.php

Wenn Sie einzelne Testfälle in Laravel 5.5 ausführen möchten, versuchen Sie es mit

vendor/bin/phpunit tests/Feature/{testfilename}

vendor/bin/phpunit tests/Unit/{testfilename}

Zum Beispiel:

vendor/bin/phpunit tests/Feature/ContactpageTest.php

vendor/bin/phpunit tests/Unit/ContactpageTest.php

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