2017-07-14 2 views
0

J'ai des problèmes avec les tests PHPUnit en utilisant le fichier phpunit.xml. Je configuré interpréteur PHP à distance comme ceci:Déboguer les tests PHPUnit dans un environnement Homestead avec PhpStorm

Remote PHP interpreter configuration

Cette configuration me permet de déboguer PHP Web Application. J'ai le problème essayant de déboguer des manuscrits de PHPUnit. Je configuré comme ceci:

PHPUnit configuration

Avec une telle configuration, je peux déboguer les tests PHPUnit:

debugging PHPUnit test

Le problème est que mon fichier PHPUnit est pas lu et mes variables d'environnement ne sont pas utilisés . En conséquence, j'ai eu quelques erreurs comme les exceptions CSRF Token Validation dans mes tests. Comment utiliser mon fichier phpunit.xml? Je peux voir que je peux ajouter le fichier de configuration par défaut dans la configuration de PHPUnit. Je dois spécifier là mon répertoire de projet, pas le phpunit.xml itself.

Je peux voir dans la fonction Command->handleArguments() de PHPUnit il y a seulement deux manières de charger ce dossier. Je peux soit spécifier le répertoire où se trouve ou ne pas utiliser l'option --no-configuration.

hendleArguments() function in Command class

Malheureusement, quand je précise le répertoire dans lequel mon projet est situé comme emplacement de phpunit.xml, je perds la possibilité de déboguer mes tests. Ce qui est intéressant, je peux encore déboguer des scripts PHPUnit (par exemple le fichier Command.php).

Je ne souhaite pas ajouter l'option --no-configuration dans IntelliJ (PhpStorm), mais elle est automatiquement ajoutée lorsque le champ «Fichier de configuration par défaut» n'est pas sélectionné. Comment charger le fichier phpunit.xml sans perdre la capacité de déboguer mes tests?

+0

Avez-vous essayé de le définir comme un fichier de configuration par défaut dans le fichier | Paramètres | Langues et cadres | PHP | Test Frameworks> votre configuration PHPUnit à distance? –

Répondre

1

Le problème était que les tests étaient exécutés isolément. Lorsque nous spécifions un fichier ou un répertoire de projet dans la configuration de PHPUnit, le fichier est pris en compte. Qu'est-ce qui provoque le "débogage" débogueur exécute des tests en isolation. Pour « régler » le problème que nous devons mettre attribuer processIsolation-false:

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit backupGlobals="false" 
    backupStaticAttributes="false" 
    bootstrap="bootstrap/autoload.php" 
    colors="true" 
    convertErrorsToExceptions="true" 
    convertNoticesToExceptions="true" 
    convertWarningsToExceptions="true" 
    processIsolation="false" 
    stopOnFailure="false"> 
... 
</phpunit> 
+0

Ou configurez PHP sur cette VM pour que xdebug soit activé. Voir aussi une question similaire sur cette partie: https://stackoverflow.com/q/45332246/367456 – hakre