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());
}
}
?>
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>
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)
Je pense que pour que PHPUnit décide de l'exécuter automatiquement, il doit suivre une convention de nom de fichier: somethingTest.php.
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?