Fatal error: Class 'PHPUnit_Framework_TestCase' ne trouve pas
Je suis en utilisant XAMPP 1.8.1, Windows 7 64 bits, l'EDI Netbeans 7.4
J'ai installé PHPUnit.
Lorsque j'exécute un code, j'obtiens l'erreur ci-dessous.
Fatal error: Class 'PHPUnit_Framework_TestCase' ne trouve pas dans D:\xampp\htdocs\PHPUnit\index.php sur la ligne 6
Le Code est:
<?php
class StackTest extends PHPUnit_Framework_TestCase {
public function testPushAndpop() {
$stack = array();
$this->assertEquals(0, count($stack));
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack) - 1]);
$this->assertEquals(1, count($stack));
$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
?>
J'ai ajouté D:\xampp\php dans la variable d'environnement PATH
Quelqu'un me suggérer comment résoudre ce problème?
Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
Sont que vous essayez d'exécuter le test dans un navigateur web? Ce qui me confond, pour un temps. Les tests PHPUnit sont écrits pour être exécuté sur la ligne de commande.
Vous n'avez pas mentionné la version de PHP que vous utilisez, mais si elle est de 3,5 ou plus, il suffit d'ajouter
Vers le haut de votre code de tirer dans les fichiers requis.
Si non,utilisation:
Il est peu probable que vous utilisez une version antérieure à la version 3.5, mais j'ai compris que juste au cas où.
Je pense que vous avez juste à obtenir la dernière version de PHPUnit et de ne pas inclure n'importe quel fichier comme indiqué ci-dessous. Cela a fonctionné pour moi, quand j'ai mis à jour vers la dernière version, mais était en cours d'exécution vieux tests Unitaires qui avait:
Suppression de cette ligne a résolu le problème.
Pour les nouveaux PHPUnit versions vous avez besoin d'étendre la
TestCase
seulement, au lieu dePHPUnit_Framework_TestCase
avec l'aide de l'utilisationuse PHPUnit\Framework\TestCase;
Vieux et Depricated Façon:
Nouvelle Façon adoptée dans les Versions 6.x:
Si vous n'êtes pas à l'aide de cette nouvelle méthode, vous obtiendrez les difficultés. Adopter et cela permettra de résoudre votre problème.
Pour ceux qui arrivent ici après la mise à jour de phpunit pour la version 6 libéré.
Vous aurez besoin de renommer la classe comme:
\PHPUnit_Framework_TestCase
à\PHPUnit\Framework\TestCase
Il y a deux niveaux de réponses à cette.
Le premier problème, pour certains, c'est que, tandis que les noms de classe sont des cas insentive en PHP, l'autochargeur est parfois pas, de sorte que vous sera besoin pour utiliser correctement le nom de la classe parente:
PHPUnit_Framework_TestCase
Le deuxième problème est un problème d'incompatibilité de PHPUnit 6 avec lui-même. Si vous, comme beaucoup d'autres, doivent être en mesure d'écrire des cas de tests qui fonctionnent avec la version, créez un nouveau fichier inclus avec le contenu suivant:
Ensuite, inclure ce fichier dans le haut de chaque cas de test. Les cas de tests eux-mêmes continuent à hériter de la même classe, par exemple, dans le code de la mine:
Contrairement à l'avis précédent, y compris
PHPUnit/Autoload.php
ouPHPUnit/Framework/TestCase.php
s'est avéré être inutile à la fois avec PHPUnit 4.2.6 (Debian jessie) et 6.5.5 (Debian sid). Il n'est également pas nécessaire d'écrire unphpunit.xml
,bootstrap.php
, etc. comme inclus dans les mêmes conseils.