Ich möchte bestimmte testClass in meinem Projekt testen, da viele Testklassen fehlerhaft sind und ich nur eine Klasse gleichzeitig testen möchte.
Ich habe die Testklasse in folgendem Ordner \test\repositories\ApplicationVersionFormat.php
erstellt:
<?php
use App\Repositories\ApplicationVersionFormat;
class ApplicationVersionFormatTest extends \TestCase
{
public function testValidFormat()
{
$version = '1.2.3';
$appVersion = new ApplicationVersionFormat();
$this->assertEquals(true,$appVersion->isValidVersion($version));
}
public function testInvalidFormat()
{
$version = '11.2.3';
$appVersion = new ApplicationVersionFormat();
$this->assertEquals(false,$appVersion->isValidVersion($version));
}
public function testInvalidFormat2()
{
$version = '1.22.3';
$appVersion = new ApplicationVersionFormat();
$this->assertEquals(false,$appVersion->isValidVersion($version));
}
public function testInvalidFormat3()
{
$version = '1.2.33';
$appVersion = new ApplicationVersionFormat();
$this->assertEquals(false,$appVersion->isValidVersion($version));
}
public function testInvalidFormat4()
{
$version = '11.22.33';
$appVersion = new ApplicationVersionFormat();
$this->assertEquals(false,$appVersion->isValidVersion($version));
}
}
ich habe also folgenden Befehl ausprobiert, aber nichts davon funktioniert:
phpunit "repositories\AppVersionTest"
. => Datei "test/repositories/AppVersionTest.php" kann nicht geöffnet werden phpunit "test\repositories\AppVersionTest"
. => Datei "test/repositories/AppVersionTest.php" kann nicht geöffnet werden phpunit --filter "repositories\AppVersionTest"
. => Keine Tests durchgeführt! phpunit --testsuite "repositories\AppVersionTest"
. => Keine Tests durchgeführt! irgendeine Hilfe? Vielen Dank
Nachdem ich mehrere Möglichkeiten ausprobiert hatte, stellte ich fest, dass ich den Ordner nicht einschließen muss, um die jeweilige Testklasse zu testen. Dies funktioniert für mich, es führt alle Tests der Klasse durch:
phpunit --filter ApplicationVersionFormatTest
Ich denke es liegt daran, dass mein ApplicationVersionFormatTest The TestCase- und Return-Anwendungsinstanz erweitert, die als "Klebstoff" für alle Komponenten von Laravel dient.
für den phpunit test in laravel auf viele weise laufen ..
vendor/bin/phpunit --filter methodName className pathTofile.php
vendor/bin/phpunit --filter 'namespace\\directoryName\\className::methodName'
für den Test Einzelunterricht:
vendor/bin/phpunit --filter tests/Feature/UserTest.php
vendor/bin/phpunit --filter 'Tests\\Feature\\UserTest'
vendor/bin/phpunit --filter 'UserTest'
für Test Einzelmethode:
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 Laufversuche von allen Klassen innerhalb des Namespaces:
vendor/bin/phpunit --filter 'Tests\\Feature'
für weitere Testfahrten siehe mehr
Sie können das wahrscheinlich mit dieser Antwort einer verwandten Frage erledigen.
Markieren Sie einfach die Klasse mit @group
Annotation und führen Sie PHPUnit mit --group <group_name>
Update
Ihr Befehl mit --filter
ist nicht vollständig. Versuchen Sie folgendes: phpunit --filter AppVersionTest "repositories\ApplicationVersionFormat.php"
phpunit --filter <relative_path_to_file>
Zum Beispiel sind zu testende Dateien test/repos/EloquentPushTest.php
, test/repos/EloquentWebTest.php
zum Testen von EloquentWebTest.php
verwenden Sie phpunit --filter ./repos/ElqouentWebpush
Anwendungsbeispiel:
php phpunit-5.7.27.phar -c app/ "src/package/TestBundle/Tests/Controller/ExampleControllerTest.php"