2008-11-14 9 views
3

Je commence juste à essayer phpunit sur du code existant. La convention de nommage que nous utilisons est que la classe MyClass devrait être dans MyClass.class.php. PHPUnit semble exiger que le fichier soit appelé MyClass.php.PHPUnit conventions de nom de fichier

Y a-t-il un moyen de contourner ce problème?

Je l'ai remarqué tout en essayant de générer une classe de test squelette:

phpunit --skeleton-test MyClass.class 

PHPUnit 3.3.4 by Sebastian Bergmann. 

Could not find class "MyClass.class" in "/home/jd/skeleton/classes/MyClass.class.php". 
Fatal error: Call to a member function getOutClassName() on a non-object in /usr/share/php/PHPUnit/TextUI/Command.php on line 470 

Répondre

7

ne est pas une exigence, son juste assomptive. Vous pouvez écrire vos propres cas de test. Skeleton fait juste une maquette "la manière facile" qui fait des fonctions factices pour toutes les fonctions factices de vos classes.

En outre,

phpunit --skeleton-test MyClass MyClass.class.php 

pourrait faire ce que vous voulez.

Usage: phpunit [switches] UnitTest [UnitTest.php] 
     phpunit [switches] <directory> 

--skeleton-class   Generate Unit class for UnitTest in UnitTest.php. 
--skeleton-test   Generate UnitTest class for Unit in Unit.php. 

donc par ce raisonnement, si vous ne dites pas quel fichier la classe est en elle va essayer deviner, si vous ne le dites quel fichier la classe est, il devine l'habitude.

+0

Merci. Si j'avais un cerveau, je serais dangereux. –

0

J'ai rencontré un problème similaire lorsque la classe pour laquelle un squelette est généré est nommée. J'utilise phpunit 3.5.6 depuis la ligne de commande. L'exemple de documentation de phpUnit n'a pas fonctionné pour moi et je n'ai pas trouvé la réponse en ligne, donc j'ai pensé que je la partage ici. Supposons que vous ayez la classe Foo dans le répertoire/my/dir et qu'elle soit déclarée dans un seul fichier Foo.php, donc le chemin complet vers le fichier de classe est /my/dir/Foo.php

Supposons également que Foo soit déclaré comme suit :

<?php 

namespace my\space; 
class Foo 
{ 
    ... 
} 

afin de générer un squelette de test je me suis assuré que j'étais dans le répertoire où réside le fichier foo.php puis j'ai couru la commande suivante:

user[/my/dir]$ phpunit --skeleton-test my\\dir\\Foo Foo.php 

qui a obtenu mon squelette pour générer. La clé échappait à la barre oblique inverse car la documentation de phpUnit mentionne les espaces de noms, mais ne montre qu'une seule barre oblique inverse. J'espère que cela aide quelqu'un.

Questions connexes