Message d'erreur lorsque j'essaie d'exécuter PHPUnit de PhpStorm
J'ai peu de problème lorsque j'essaie de l'exécuter PHPUnit test en IDE PhpStorm.
- Je utiliser compositeur de fichier qui a l'air:
{
"require": {
"phpunit/phpunit": "3.7.19"
}
}
Maintenant quand je lance le test, je suis en attente d'exception:
PHP Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.'
Quel est le problème? Quand j'ai compris poire installé la version d'essai de travail sur OK.
//MODIFIER
Exemple de test de la classe:
class ReaderTest extends PHPUnit_Framework_TestCase
{
/**
* @test
*/
public function shouldGetReadedValue ()
{
$this->assertTrue(true);
}
}
//EDIT2
Trace:
/usr/bin/php /tmp/ide-phpunit.php --no-configuration /path/to/my/project
Testing started at 14:53 ...
PHP Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.' in /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:183
Stack trace:
#0 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(315): PHPUnit_Framework_TestSuite->__construct(Object(ReflectionClass))
#1 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(389): PHPUnit_Framework_TestSuite->addTestSuite(Object(ReflectionClass))
#2 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(416): PHPUnit_Framework_TestSuite->addTestFile('/var/www/php-sh...')
#3 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Runner/BaseTestRunner.php(96): PHPUnit_Framework_TestSuite->addTestFiles(Array)
#4 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php(150): PHPUnit_Runner_BaseTestRunner->getTest('/var/www/php-sh...', '', A in /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php on line 183
Process finished with exit code 255
- Pouvez-vous montrer votre test unitaire? Est-ce que votre classe de test étendre PHPUnit_Framework_TestCase?
- - Je modifier ma question, et ajouter des exemples de la classe de test. J'ai quelques classes de test.
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la solution sur ce problème.
En Modifier les configurations dans le répertoire, j'définir le chemin d'accès à mes tests de catalogue (
/path/to/my/project/tests
), après cela, des tests sont en cours d'exécution correctement.Run > Edit Configuration > PhpUnit
Là, leDirectory
peut être réglé. Vous n'avez pas(!) vous trouverez cette information sousFile > Settings
dans PhpStorm.J'ai le même problème lors de l'utilisation de compositeur.
La solution est de placer votre fichier de test dans son propre répertoire. Voici mon travail de phpunit, j'ai mis tous mes test dans
test
répertoire.Espère qu'il résout si quelqu'un a le même problème.. 🙂
C'est ce qui a fonctionné pour moi, merci à Piotr la réponse ci-dessus, mais je donne avec un peu plus de détails ici toutes les étapes que j'ai eu à faire:
Étapes pour le faire fonctionner (test dans PHPStorm 8.0.1):
1) Dans
Preferences > PHP > PHPUnit
assurez-vous que rien n'est défini pour le fichier de configuration par Défaut ou par défaut un fichier de bootstrap.2) Faire un personnalisé PHPUnit Configuration via
Run > Edit Configurations >
dans leCommand Line
paragraphe, et assurez-vous de:a) de mettre en
Custom working directory:
être/absolute/path/to/vendor
.b) cochez la case "Utiliser un fichier de configuration alternatif:" et réglez-le
/absolute/path/to/vendor/your_app/(sub_app_if_applicable)/phpunit.xml.dist
Ensuite, vous pouvez exécuter n'importe quelle classe de test dans la suite par la spécification de la classe et de fichier, ou il suffit de cocher "Défini dans le fichier de configuration" pour exécuter tous d'entre eux, selon la config.
À l'intérieur de la PHPUnit_Framework_TestSuite, ce code il existe dans le constructeur:
Je vois dans votre exemple que vous étendez
PHPUnit_Framework_TestCase
mais l'erreur suggère que vous utilisezPHPUnit_Extensions_RepeatedTest
qui s'étendPHPUnit_Extensions_TestDecorator
qui finalement s'étendPHPUnit_Framework_Assert
Vérifiez vos tests car l'erreur suggère que vous essayez d'exécuter une suite de tests à l'aide d'un test de l'extension de
PHPUnit_Extensions_RepeatedTest
. Étiez-vous au lieu d'essayer de prolonger PHUnit à l'aide des Décorateurs?http://docs.tadiavo.com/phpunit/www.phpunit.de/pocket_guide/3.1/en/extending-phpunit.html
C'est tout le conseil que je peux vous proposons actuellement sans voir vos tests réels et la façon dont vous exécutez eux.
vendor/autoload.php
. C'est tout ce que j'ai fait.