2012-03-13 1 views
0

Je suivais Jon´s screencast about Unit Testing with PhpUnit and ZF quand j'ai eu exactement la même erreur que ratzip décrit dans ce question. Comme il l'a commenté, j'ai également eu le même problème, même après avoir créé des tests comme suggéré here: pour une raison quelconque, il y avait un script à la recherche d'un fichier nommé comme j'ai appelé ma suite de test (MyApp.php ou autre ...).exception de lancement phpunit quand ne trouve pas de fichier avec le nom de suite de tests

J'ai regardé autour mais je n'ai pas pu trouver où je devrais créer ce dossier et ce qu'il devrait contenir.

Mais, dans un moment donné, après avoir lu ce question about how to run a specific phpunit xml testsuite, j'ai décidé d'essayer explicitement d'insérer un fichier dans la section de la suite de tests.

Mon phpunit.xml est maintenant:

<phpunit bootstrap="./application/bootstrap.php" colors="true"> 
<testsuites> 
    <testsuite name="MyApp"> 
     <file>./application/(path_to_model_inside_module)/ModelTests.php</file> 
     <directory>./</directory>  
    </testsuite> 
</testsuites> 

<filter> 

    <whitelist> 
     <directory suffix=".php">../application/</directory> 
     <exclude> 
      <directory suffix=".phtml">../application/</directory> 
     </exclude> 
    </whitelist> 

</filter> 

Et même si elle semble un peu désespéraient, cette erreur ne se produit plus et le test fonctionne maintenant.

BUt Je me sens mal à l'aise car je n'arrive pas à comprendre quel était le problème avant et pourquoi cette explicitation d'un fichier l'a "corrigé".

Je n'arrive pas à comprendre pourquoi la définition du répertoire xml n'a pas pu guider le framework de test pour trouver le test existant.

Répondre

1

PHP Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "$TEST_SUITE_NAME.php" nor "$TEST_SUITE_NAME.php" could be opened.' in ...

C'est PHPUnits très façon cryptique de dire

He buddy! Small issue over here: I was trying to find some tests to execute but I didn't find any so I tried to load a file named like the test suite and not even that exists. I can't execute any tests.. can you help me out here? :(

En bref, il dit:

Après avoir numérisé les choses dans votre xml Je n'ai pas trouvé des tests!

Pourquoi cela se produit-il dans votre cas?

PHPUnit recherche les fichiers se terminant par Test.php mais votre fichier se termine par tests.php. Le "S" supplémentaire signifie que PHPUnit ne prendra pas le fichier lors de l'analyse du répertoire. C'est aussi pourquoi l'ajout de la balise de fichier aide.

Renommer le faire ModelTest.php et vous pouvez vous débarrasser de l'étiquette de fichier :)

Ou si vous voulez garder vos noms dire PHPUnit votre schéma de nommage en utilisant:

<directory suffix="Tests.php">./</directory> 
+0

TXS @edorian , pour pointer le 'S' supplémentaire ... cela a probablement fait partie de mon problème ... J'ai également trouvé quelques autres conseils à la réponse pour tout à fait la même question à http://stackoverflow.com/questions/7045834/ pourquoi-does-phpunit-essayer-de-trouver-un-fichier-avec-le-nom-de-la-suite de tests avait créer un "/tests/TheSuiteNameTest.php", nommé la suite comme TheSuiteName, et th L'erreur était partie ... –

+0

@RodrigoAoCubo vous ne devriez pas avoir besoin d'un "TestSuiteName.php" ou quoi que ce soit de ce genre. Cela a été utilisé à l'époque pour orchestrer des suites de tests mais a été remplacé par la configuration xml. – edorian

+0

vous avez raison, j'ai enlevé le "TestSuitName.php "fichier et cela fonctionne encore maintenant que je n'ai pas ce" suivi "Txs encore! –

Questions connexes