2016-08-24 41 views
11

Chcę przetestować konkretny testClass w moim projekcie, ponieważ istnieje wiele testów, które są awarią i chcę tylko przetestować jedną klasę na raz.jak przetestować konkretną klasę testową za pomocą phpunit w laravel

Stworzyłem klasę testową w następującym folderze \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)); 
    } 
} 

więc próbowałem tego polecenia follwing ale nic z tego nie działa:

  • phpunit "repositories\AppVersionTest". =>Nie można otworzyć pliku "test/repozytorium/AppVersionTest.php"
  • phpunit "test\repositories\AppVersionTest". =>Nie można otworzyć pliku "test/repositories/AppVersionTest.php"
  • phpunit --filter "repositories\AppVersionTest". =>Żadne testy nie zostały wykonane!
  • phpunit --testsuite "repositories\AppVersionTest". =>Żadne testy nie zostały wykonane!

jakiej pomocy? dzięki

+0

co wyjście polecenia wykonać? – Matteo

+0

Spróbuj sprawdzić konfigurację włączania/wykluczania w plikach phpunit.xml (.dist). Czy możesz opublikować te pliki? – Matteo

Odpowiedz

22

Po wypróbowaniu kilku sposobów okazało się, że nie muszę dołączać folderu, aby przetestować konkretną klasę testową. To działa na mnie to działa cały test na klasy:

phpunit --filter ApplicationVersionFormatTest

Myślę, że to dlatego, że mój ApplicationVersionFormatTest przedłużyć TestCase i powrócić instancję aplikacji, która służy jako „klej” dla wszystkich składników laravel.

0

Możesz prawdopodobnie zarządzać tym z this answer na pokrewne pytanie.

Wystarczy zaznaczyć klasę z @group adnotacji i uruchomić PHPUnit z --group <group_name>

Aktualizacji

Twoje polecenia z --filter nie jest kompletna. Spróbuj: phpunit --filter AppVersionTest "repositories\ApplicationVersionFormat.php"

+0

dziękuję, ale to nie działa –

+0

@GujaratSantana zobacz aktualizację – BVengerov

0

phpunit --filter <relative_path_to_file> na przykład pliki do testowania są test/repos/EloquentPushTest.php, test/repos/EloquentWebTest.php do testowania EloquentWebTest.php

użytku phpunit --filter ./repos/ElqouentWebpush