web-dev-qa-db-fra.com

Comment exécuter tous mes tests PHPUnit?

J'ai un script appelé Script.php et les teste dans Tests/Script.php, mais lorsque j'exécute des tests phpunit, il n'exécute aucun test dans mon fichier de test. Comment exécuter tous mes tests avec phpunit?

PHPUnit 3.3.17, PHP 5.2.6-3ubuntu4.2, dernière Ubuntu

Sortie:

$ phpunit Tests
PHPUnit 3.3.17 by Sebastian Bergmann.
Time: 0 seconds
OK (0 tests, 0 assertions)

Et voici mon script et mes fichiers de test:

Script.php

<?php  
function returnsTrue() {  
    return TRUE;  
}  
?>

Tests/Script.php

<?php  
require_once 'PHPUnit/Framework.php';  
require_once 'Script.php'  

class TestingOne extends PHPUnit_Framework_TestCase  
{

    public function testTrue()
    {
        $this->assertEquals(TRUE, returnsTrue());
    }

    public function testFalse()
    {
        $this->assertEquals(FALSE, returnsTrue());
    }
}

class TestingTwo extends PHPUnit_Framework_TestCase  
{

    public function testTrue()  
    {  
        $this->assertEquals(TRUE, returnsTrue());  
    }

    public function testFalse()
    {
        $this->assertEquals(FALSE, returnsTrue());
    }
}  
?>
45
JJ.

J'ai créé ce qui suit phpunit.xml et maintenant je peux au moins faire phpunit --configuration phpunit.xml dans mon répertoire racine pour exécuter les tests situés dans Tests /

<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         syntaxCheck="false">
  <testsuites>
    <testsuite name="Tests">
      <directory suffix=".php">Tests</directory>
    </testsuite>
  </testsuites>
</phpunit>
35
JJ.

Le nom de fichier du test Php doit se terminer par Test.php

phpunit mydir exécutera tous les scripts nommés xxxxTest.php dans le répertoire mydir

(on dirait que ce n'est pas décrit dans la documentation de phpunit)

59
Mabrouk

Je pense que pour que PHPUnit décide de l'exécuter automatiquement, il doit suivre une convention de nom de fichier: somethingTest.php.

10
Dean Rather

Vous pensez qu'ils auraient documenté cela. Je viens de parcourir le manuel, et ils disent que vous pouvez passer un répertoire, mais pas vraiment comment le faire.

Peut-être que le nom de votre classe doit correspondre au nom de base (tout sauf le ".php") du nom de fichier de vos scripts de test?

2
JasonWoof