2016-02-05 1 views
1

Mes tests PHPUnit échouent toujours lorsque j'essaie de tester tous les fichiers .php dans mon application (code ancien) qui commence par la balise courte ouverte (<? au lieu de <?php).paramètre short_open_tag ignoré par PHPUnit

Mais dans mon fichier php.ini, le short_open_tag est défini sur On.

L'application fonctionne correctement. Pourquoi PHPUnit se fâche-t-il sur la courte balise ouverte? J'ai cherché d'autres fichiers php.ini, et ne pouvais trouver que celui au /etc/php.ini. Mon fichier .htaccess n'affecte pas non plus ce paramètre. Quoi d'autre pourrait causer cela?

+0

Il suffit d'utiliser '

+0

Je travaille avec du code hérité où il y a probablement des centaines à des milliers d'occurrences de balises ouvertes courtes et il n'est pas possible de changer ce type de code nous avons des tests unitaires ... – thanksd

+0

Pouvez-vous ajouter le message d'erreur que vous obtenez? – pivemi

Répondre

0

Ainsi, je l'ai eu pour fonctionner et la solution est frustrante: Mon application est sur une VM et le fichier php.ini dans la VM avait le bon réglage. Cependant, PHPUnit utilisait le fichier php.ini sur ma machine locale, qui avait short_open_tag défini sur Off. Changer ce paramètre a résolu mon problème.

(je ne sais toujours pas pourquoi PHPUnit utilise l'autre php.ini, mais je pense que c'est en dehors de la portée de cette question.)

4

solution générale

1) vérifier quel fichier php.ini est chargé (ligne de commande: php --ini)

2a) Situé dans le fichier php ini: short_open_tag = on

2b) Occupant fichier .htaccess: php_value short_open_tag 1

3) Redémarrez le serveur (ligne de commande: service httpd restart)

+0

J'utilise un fichier de configuration phpunit.xml pour lancer des tests, et j'ajoute ' 'à l'intérieur de la balise' 'ne l'active pas. Savez-vous comment activer ce paramètre en utilisant le fichier de configuration phpunit.xml? – thanksd

+0

Donc j'ai posté la question ci-dessus: http://stackoverflow.com/questions/35277342/changing-php-ini-configuration-option-in-phpunit-xml, et il s'avère que vous ne pouvez pas changer le paramètre 'short_open_tag' à runtime. Donc, je ne pense pas que passer l'option fonctionnera. (Bonne solution générale) – thanksd

+0

Hmm, d'accord. J'ai mis à jour la réponse en conséquence. – pivemi

0

PHPUnit utilise le module PHP-cli de PHP. Et PHP-cli a un autre fichier .ini pour sa configuration. J'utilise ubuntu 14.04, dans mon cas

/etc/php5/apache2/php.ini // utilisé pour le compilateur web

/etc/php5/cli/php.ini // Utilisé pour PHP-cli, vous devez régler short_open_tag=On ici