2009-09-12 10 views
33

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

PHPUnit 3.3.17, 5.2.6-3ubuntu4.2 PHP, sous Ubuntu

Sortie:

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

Et voici mon script et les fichiers 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()); 
    } 
} 
?> 

Répondre

28

Je créé à la suite phpunit.xml et maintenant atleast je peux faire phpunit --configuration phpunit.xml dans mon répertoire racine pour exécuter les tests situés dans les essais/

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

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 votre script de test?

8

Je pense à forPHPUnit décider de l'exécuter automatiquement, il doit suivre une convention de nom de fichier: somethingTest.php.

+0

Ce changement travaillé pour moi – Stephanie

-5
<?php 
//Files required for phpunit test 
require_once 'PHPUnit/Framework.php'; 
//Knowing the drupal environment 
require_once './includes/bootstrap.inc';  //initialize the Drupal framework 
//Loading the drupal bootstrap 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
//Helper file 
include_once 'helper.inc'; 
//Including inc file of addresses module 
include_once(module_load_include('inc','addresses_user','addresses_user')); 

class addresses_test extends PHPUnit_Framework_TestCase { 

protected $uid; 

protected function setUp() 
{ 
    $this->uid = 1; 
} 
47

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

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

(regards aime ce n'est pas décrit dans la documentation de PHPUnit)

+0

Ce n'est pas un must. Vous pouvez spécifier --test-suffixe "TestCase.php" si vos fichiers de test se terminent par "TestCase.php", mais par défaut phpunit n'acceptera le suffixe que "Test.php" quand nous ne spécifions pas de suffixe dans la commande ligne – kaushik

Questions connexes