pruebas - cómo probar la clase de prueba específica usando phpunit en laravel
pruebas unitarias (5)
Quiero probar una clase de prueba específica en mi proyecto, ya que hay muchas clases de pruebas que fallan y solo quiero probar una clase a la vez.
He creado la clase de prueba en la siguiente carpeta /test/repositories/ApplicationVersionFormat.php
:
<?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));
}
}
Así que he intentado este siguiente comando, pero nada de esto funciona:
-
phpunit "repositories/AppVersionTest"
. => No se puede abrir el archivo "test / repositories / AppVersionTest.php" -
phpunit "test/repositories/AppVersionTest"
. => No se puede abrir el archivo "test / repositories / AppVersionTest.php" -
phpunit --filter "repositories/AppVersionTest"
. => No hay pruebas ejecutadas! -
phpunit --testsuite "repositories/AppVersionTest"
. => No hay pruebas ejecutadas!
¿alguna ayuda? Gracias
Después de probar varias maneras, descubrí que no necesito incluir la carpeta para probar la clase de prueba específica. Esto funciona para mí, ejecuta todas las pruebas en la clase:
phpunit --filter ApplicationVersionFormatTest
Creo que es porque mi ApplicationVersionFormatTest extiende The TestCase y devuelve la instancia de la aplicación que sirve como "pegamento" para todos los componentes de Laravel.
Ejemplo de uso:
php phpunit-5.7.27.phar -c app/ "src/package/TestBundle/Tests/Controller/ExampleControllerTest.php"
Probablemente pueda manejar eso con esta respuesta a una pregunta relacionada.
Simplemente marque la clase con la anotación @group
y ejecute PHPUnit con --group <group_name>
Actualizar
Su comando con --filter
no está completo. Pruebe esto: phpunit --filter AppVersionTest "repositories/ApplicationVersionFormat.php"
para ejecutar prueba de phpunit en laravel de muchas maneras ..
vendor/bin/phpunit --filter methodName className pathTofile.php
vendor/bin/phpunit --filter ''namespace//directoryName//className::methodName''
para prueba de clase única:
vendor/bin/phpunit --filter tests/Feature/UserTest.php
vendor/bin/phpunit --filter ''Tests//Feature//UserTest''
vendor/bin/phpunit --filter ''UserTest''
para el método de prueba solo:
vendor/bin/phpunit --filter testExample
vendor/bin/phpunit --filter ''Tests//Feature//UserTest::testExample''
vendor/bin/phpunit --filter testExample UserTest tests/Feature/UserTest.php
para ejecutar pruebas de todas las clases dentro del espacio de nombres:
vendor/bin/phpunit --filter ''Tests//Feature''
para más prueba de carrera ver más
phpunit --filter <relative_path_to_file>
por ejemplo, los archivos a probar son, test/repos/EloquentPushTest.php
, test/repos/EloquentWebTest.php
para probar EloquentWebTest.php
utilizar phpunit --filter ./repos/ElqouentWebpush