web-dev-qa-db-fra.com

erreur phpunit require_once ()

J'ai récemment installé phpunit sur mon serveur via le programme d'installation de pear.

Lorsque je lance un test, l'erreur suivante apparaît:

Avertissement PHP: require_once (PHPUnit/Util/Filter.php): échec de l'ouverture du flux: aucun fichier ou répertoire de ce type dans/usr/bin/phpunit à la ligne 44

Erreur irrécupérable PHP: require_once (): Impossible d'ouvrir "PHPUnit/Util/Filter.php" (include_path = ".:/Usr/bin/php") dans/usr/bin/phpunit à la ligne 44

Après quelques recherches, j'ai essayé d'apporter quelques modifications à include_path dans mon fichier php.ini sur le serveur. Mais cela n'a rien fait.

Une idée de ce qui pourrait causer cela?

78
user185305

MISE À JOUR: À partir de novembre 2013 et Ubuntu 12.04, ces 2 commandes devraient suffire:

Sudo pear config-set auto_discover 1
Sudo pear install pear.phpunit.de/PHPUnit

Ce qui suit est une réponse plus ancienne… C'est un problème connu, bien que presque un an et demi se soit écoulé. Lire à ce sujet ici 

La couverture de code doit être installée pour que phpunit fonctionne correctement

Ce que vous devez faire est couvert ici:

Installation de la couverture de code via PEAR

En gros, vous devez taper (avec Sudo si vous n'avez pas les permissions, sachant que phpunit est déjà installé):

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/PHP_CodeCoverage
123
arunas_t

J'ai eu ce problème sous OS X. Je l'ai corrigé avec les commandes suivantes qui obligent toutes les dépendances php à être réinstallées, ce qui incluait quelques paquetages d'autres canaux non configurés:

Sudo pear channel-discover pear.symfony-project.com
Sudo pear channel-discover components.ez.no
Sudo pear install --alldeps phpunit/PHPUnit
34
Steven Green

https://bugs.launchpad.net/ubuntu/+source/phpunit/+bug/701544

et spécialement ce commentaire pour Ubuntu 11.04 et peut être pour d'autres aussi

même si j’ai suivi les étapes recommandées ci-dessus, je n’ai pas réussi à le faire fonctionner, mais après avoir mis à niveau pear de 1.9.1 à 1.9.2, il fonctionne parfaitement.

speshu @ speshu-laptop: ~ $ poire mise à niveau Sudo poire

   downloading PEAR-1.9.2.tgz ...
   Starting to download PEAR-1.9.2.tgz (295,120 bytes)
    .....................................................done: 295,120 bytes
    upgrade ok: channel://pear.php.net/PEAR-1.9.2
    PEAR: Optional feature webinstaller available (PEAR's web-based installer)
    PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
    PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
    PEAR: To install optional features use "pear install pear/PEAR#featurename"
13
jspeshu

Si vous utilisez PEAR pour la première fois, vous n'avez peut-être pas configuré le chemin d'inclusion correctement. Jetez un coup d’œil à la section appropriée dans le manuel PEAR .

8
jeroen

https://github.com/sebastianbergmann/php-code-coverage

sb@ubuntu ~ % pear channel-discover pear.phpunit.de
Adding Channel "pear.phpunit.de" succeeded
Discovery of channel "pear.phpunit.de" succeeded

sb@ubuntu ~ % pear channel-discover components.ez.no
Adding Channel "components.ez.no" succeeded
Discovery of channel "components.ez.no" succeeded

sb@vmware ~ % pear install phpunit/PHP_CodeCoverage
downloading PHP_CodeCoverage-0.9.0.tgz ...
Starting to download PHP_CodeCoverage-0.9.0.tgz (108,376 bytes)
.........................done: 108,376 bytes
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-0.9.0
4
stanleyhlng

C'est également ce qui se produit si vous avez une installation PHPUnit obsolète ou incomplète. Sachez qu’après avoir configuré PEAR, vous devez ajouter le canal PHPUnit.de afin d’obtenir un paquet à jour.

2
Josh Koenig

(include_path = '.:/usr/bin/php')

Êtes-vous sûr vous l'avez ajouté à include_path?

Cela pourrait également aider si nous voyions votre fichier ini et l'extrait de code include_path qu'il contient ...

2
meder omuraliev

Je l'ai trouvé!

On dirait que PEAR a installé PHPUnit dans/usr/share/pear. Je ne sais pas pourquoi mais c'est là que ça se trouve. Doit être une chose (mt).

En tout cas, je suis prêt. Merci pour l'aide.

2
user185305

Dans mon cas, je l'ai résolu en ajoutant /usr/share/php/PEAR au include_path.

J'utilise Ubuntu 10.04.2.

2
Marcelo

Si vous rencontrez des problèmes pour accéder aux composants, essayez d’une autre manière.

  1. Installer poire

    Sudo apt-get install php-pear
    
  2. Installez phpunit en utilisant pear.

    pear config-set auto_discover 1
    pear install pear.phpunit.de/PHPUnit
    
  3. Installez phpunit/Selenium, mais vous devez d'abord installer le module curl

    Sudo apt-get install php5-curl 
    pear install phpunit/PHPUnit_Selenium
    
1
denz

J'avais le même problème. Netbeans signalait que la version de phpunit était trop ancienne (ce qui n'était pas le cas). L'exécution du script phpunit a directement montré les messages ci-dessus.

Je l'ai résolu en ajoutant:

include_path=".:/usr/share/php"

To /etc/php5/cli/php.ini

Veuillez noter que le fichier php.ini est celui de php CLI (commande) et non le php.ini utilisé pour Apache! 

0
lepe

J'ai eu le même problème avec Windows 8 Semblable à la première réponse, je devais démarrer la ligne de commande, mais assurez-vous de exécuter cmd.exe en tant qu'administrateur . Puis les deux commandes

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit
0
Moak

Mon problème initial était que je ne pouvais pas obtenir la version en ligne de commande de php (yum installer php ou yum installer php-cli) à mettre à niveau vers => php5.2.7 J'étais bloqué sur la version 5.1

J'avais déjà compilé PHP 5.3.3 pour une utilisation avec Apache. J'ai donc configuré un lien symbolique de/usr/bin/php (valeur par défaut de la ligne de commande) vers ma version compilée dans/var/php5/bin/php pour obtenir la ligne de commande php reporting 5.3.3

Ensuite, j'ai suivi les étapes d'installation de pear pour phpunit

Mais il avait toujours besoin de la couverture de code quand j'ai lancé phpunit.

J'ai donc recherché la couverture de code sous/var/php5/lib/php/PHP/CodeCoverage et l'a ajouté au chemin d'inclusion dans php.ini Include_path = ".:/Var/php5/lib/php /"

Assurez-vous de l'ajouter au chemin d'inclusion sans/PHP car phpunit commence à PHP/(notice caps) en recherchant la couverture de code Échec d'ouverture requise 'PHP/CodeCoverage/Filter.php'

0
user1003932

J'ai eu ce problème. Je développais un site de structure zend. Enfin, je parviens à le résoudre en supprimant l’installation de zend et en supprimant/commentant le chemin d’inclusion dans les fichiers php.ini de bath dans Apache et cli. Pour développer un site avec zend, il n'est pas nécessaire que zend soit installé. Insted nous pouvons copier la bibliothèque dans notre dossier de site

0
Ruwantha

Pour moi, diviser les tests en plusieurs lots m'a aidé.

0
amitchhajer

Vous pouvez résoudre ce problème en redéfinissant les variables d’environnement dans PEAR . C’est ainsi que j’ai résolu le problème et que j’utilisais Ubuntu 12.10.

http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html

En bref, il définit les chemins, puis réinstalle phpunit

0
Rabimba Karanjai

Ubuntu 12.04:

Sudo pear channel-discover pear.symfony.com
Sudo pear install --alldeps phpunit/PHPUnit
0
RBalazs