La tentative d'exécution de PHPUnit avec un fichier XML de configuration des résultats dans d'exception
Je suis en train (depuis un certain temps, avec l'aide de gars à l'PHP salle de chat) pour réussir à intégrer PHPUnit avec PhpStorm.
J'ai mis en place le phpunit.xml
fichier comme suit:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
backupGlobals = "false"
backupStaticAttributes = "false"
colors = "true"
convertErrorsToExceptions = "true"
convertNoticesToExceptions = "true"
convertWarningsToExceptions = "true"
processIsolation = "false"
stopOnFailure = "false"
syntaxCheck = "false"
bootstrap = "bootstrap.php" >
<testsuites>
<testsuite name="Lamed Test Suite">
<directory>Custom/*</directory>
</testsuite>
</testsuites>
</phpunit>
Et configuré PHP tempête avec succès à lire à partir de ce fichier.
Le problème est, je reçois l'erreur suivante dans PhpStorm de la console lors de l'exécution des tests:
D:\Websites\php\php.exe C:\fakepath\ide-phpunit.php --bootstrap D:\Websites\htdocs\lamed\tests\boostrap.php --configuration D:\Websites\htdocs\lamed\tests\phpunit.xml
Testing started at 23:51 ...
Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "Lamed Test Suite.php" nor "Lamed Test Suite.php" could be opened.' in D:\Websites\php\pear\PHPUnit\Util\Skeleton\Test.php:100
Stack trace:
#0 D:\Websites\php\pear\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('Lamed Test Suit...', '')
#1 C:\Users\Dor\AppData\Local\Temp\ide-phpunit.php(95): PHPUnit_TextUI_Command->run(Array, true)
#2 C:\Users\Dor\AppData\Local\Temp\ide-phpunit.php(434): IDE_PHPUnit_TextUI_Command::main()
#3 {main}
thrown in D:\Websites\php\pear\PHPUnit\Util\Skeleton\Test.php on line 100
Process finished with exit code 255
C'est évidemment la lecture que de la name=
attribut sur la testsuite
élément. La question est, pourquoi?
MISES à jour
- Je suis en cours d'exécution Windows Seven x64 SP1 et PHPStorm 4.0.3. PHPUnit version est 3.6.12.
- Tapant
phpunit -c "D:\Websites\htdocs\lamed\tests\phpunit.xml"
dans la CLI, de fait, donne les mêmes résultats. - Mon
Custom
répertoire se trouve dans le même dossier que lephpunit.xml
fichier.
Je suis perplexe. Serais reconnaissant de toute sorte d'aide.
Je vais regarder cela de nouveau plus tard après la réinitialisation de mon cerveau. Notez que je développe sous Linux et je viens de réaliser que vous êtes en développement sur Windows, mais qui ne devrait pas vraiment faire une différence.
Réfléchir à nouveau. Je ne peux pas exécuter TOUS les tests phpunit par le biais d'un fichier de configuration sur Windows 7. Je n'ai pas compris encore.
Intéressant. Je n'ai pas de boîte de Windows...sinon je serais test.
Vous n'avez pas besoin de le configurer. PHPStorm s'en occupe pour vous, si vous avez besoin pour l'installation de custom XML ou des fichiers d'amorçage, il y a une option: chat.stackoverflow.com/transcript/11?m=4825091#4825091
Apparaît ainsi! L'exécution de
Réfléchir à nouveau. Je ne peux pas exécuter TOUS les tests phpunit par le biais d'un fichier de configuration sur Windows 7. Je n'ai pas compris encore.
Intéressant. Je n'ai pas de boîte de Windows...sinon je serais test.
Vous n'avez pas besoin de le configurer. PHPStorm s'en occupe pour vous, si vous avez besoin pour l'installation de custom XML ou des fichiers d'amorçage, il y a une option: chat.stackoverflow.com/transcript/11?m=4825091#4825091
Apparaît ainsi! L'exécution de
phpunit -c "D:\Websites\htdocs\lamed\tests\phpunit.xml"
m'a donné le même message.OriginalL'auteur Madara Uchiha | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Baisse de la
/*
de la<directory>
élément. Ce texte de l'élément de contenu doit pointer vers un répertoire—pas un fichier glob.Voir le PHPUnit documentation de la configuration pour plus de détails sur la spécification des fichiers individuels et modes d'inclusion.
Par défaut, tous les fichiers se terminant par
Test.php
(par exempleUserTest.php
) seront inspectés pour des cas de test. Si vous avez une autre convention de nommage, vous pouvez soit changer ou ajouter lesuffix
attribut. Par exemple, si vous nommez vos tests commeUser.test.php
utiliser ceci:Object_Freezer
ouObject/Freezer
).Notez que le chemin est relatif à l'emplacement des fichiers xml. Bzt que David a déclaré le problèmes vient de phpunit de ne pas trouver tous les tests 🙂
L'phpunit.xml fichier est le frère du répertoire Personnalisé, mon test est à l'intérieur de la Coutume.
Le nom de fichier n'a pas pris fin avec
Test
, une fois que je l'ai fait il a résolu le problème. Merci 🙂Le lien est rompu, est le suivant lien correspondant à la page liée en 2012? phpunit.de/manual/current/en/...
OriginalL'auteur David Harkness
Ce que vous vivez est une solution de repli. Il ressemble à votre suite de tests est vide (et il n'y a pas d'autres non vide testsuite).
Dans ce cas, PHPUnit va aussi essayer de simplement ouvrir quelque chose de côté, qui ne fonctionne pas. Ensuite, vous voyez une erreur.
Si vous avez seulement un vide testsuite, vous verrez l'exception avec le nom de la suite de tests et php ajoutée pour l'essayer.
Si vous avez plus d'un vide testsuite et pas de travail testsuite, vous pourrez voir et d'erreur sur le php, pas de nom.
Si vous avez au moins une suite de tests, mais un ou plusieurs vide des tests, vous verrez un court rapport pour chaque vide testsuite mais pas d'erreur:
Quand j'écris que c'est une solution de secours, il ne doit pas dire que ce comportement est voulu par PHPUnit. Voir l'erreur dans votre cas est d'accord parce que avant de commencer les tests, vous devez au moins avoir un, en cours d'exécution. Et avant de commencer avec la configuration des tests, le même.
Résoudre le problème sous-jacent que le test est manquant et que l'erreur disparaisse.
Le générique
*
comme mentionné dans la réponse à faire - même, je suis sûr que c'est correct de ne pas avoir elle - joue pas de rôle avec votre problème aussi loin que je pouvais voir.Oui, à partir de votre capture d'écran dans le chat vous avez besoin de renommer le fichier
lamed.php
àlamedTest.php
sinon PHPUnit ne le reconnaissent pas, et de la suite de tests est toujours vide (de la première affaire dans la liste dans ma réponse).OriginalL'auteur hakre
Eu le même problème changé la valeur de répertoire d'un chemin d'accès absolu au lieu d'un chemin d'accès relatif, et cela a fonctionné.
Par exemple, j'ai changé
tests
en
C:\eclipse\Workspace\testweb
Trop mal, j'ai dû passer par beaucoup de non information et ce n'est pas mentionné dans la documentation, ni est-il documenté comment faire pour démarrer l'interface de ligne de commande avec un fichier xml de configuration.
phpunit -c tests/all.xml
Le test php les fichiers ont pour fin d'essai ainsi comme myTest.php même lorsque vous êtes à l'ajout d'éléments de fichier
C:\eclipse\Workspace\testweb\tests\classes\something.php
ne serait pas de travail, mais
C:\eclipse\Workspace\testweb\tests\classes\somethingtest.php
serait de travailler
OriginalL'auteur HMR