J'ai du mal à utiliser PHPUnit de travailler à l'intérieur d'un projet Symfony dans phpstorm - Voici l'erreur: P> PHPUNIT -C app code> fonctionne bien dans le terminal OSX.
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The "app/" directory does not exist.' in /Users/greg/Repos/MyApp/vendor/symfony/symfony/src/Symfony/Component/Finder/Finder.php:650
4 Réponses :
J'ai rencontré le même problème et j'ai trouvé la solution suivante dans la documentation: http://symfony.com/doc/current/book/testing.html# Test de votre premier fonctionnement
Pour exécuter vos tests fonctionnels, la classe WebTestcase Bootstraps le noyau de votre demande. Dans la plupart des cas, cela se produit automatiquement. Cependant, si votre noyau est dans un répertoire non standard, vous devrez Modifiez votre fichier phpunit.xml.dist pour définir l'environnement Kernel_Dir. Variable au répertoire de votre noyau: p>
<phpunit> <!-- ... --> <php> <server name="KERNEL_DIR" value="/path/to/your/app/" /> </php> <!-- ... --> </phpunit>
Cette réponse obtiendra les tests pour démarrer, mais tout autre chemin relatif que vous pouvez utiliser dans le test (tel que l'ouverture d'un fichier JSON) échouera toujours.
Phpstorm n'instaine pas toujours le coureur de test de la racine du projet, pour résoudre ce problème, ajoutez le chemin absolu à la racine du projet sous "Répertoire de travail personnalisé" dans la configuration de RUN / DEBUG. Cela vous évitera de devoir ajouter le chemin absolu à l'application dans la configuration phpunit.xml.dist, il vous permettra également de trouver tout fichier de chemin relatif (tel que les données de test JSON). P>
Étapes pour le faire fonctionner (test dans Phpstorm 8.0.1): P>
1) dans strong> a) définir strud> Ensuite, vous pouvez exécuter n'importe quelle classe de test dans la suite en spécifiant la classe et le fichier, ou simplement vérifier "défini dans le fichier de configuration" pour les exécuter en fonction de la configuration. p> Préférences> PHP> PHPUNIT CODE>
Exécuter> Modifier des configurations> CODE>
répertoire de travail personnalisé: code> pour être strud>
/ absolu / chemin / sur / fournisseur code>. / p>
/ absolu / chemin / à / Vendeur / Your_App / (sub_app_if_if_applicable) /phpunit.xml.dist code > p>
J'ai couru dans le même problème. Si vous utilisez yii2 / phpstorm, essayez de sélectionner codeception.yml code> à la place
unité.yml code> sous "fichier de configuration alternatif" dans la section de configuration de débogage. P>
Choses possibles: 1) PHP est hors de mémoire (improbable; Je pense qu'il aura un code de sortie différent); 2) (le plus probable) PHP est incapable de trouver du fichier requis pour charger (cocher le journal des erreurs php pour des détails possibles)
Trouvé l'erreur, je ne sais pas comment corriger cependant, le répertoire existe certainement ... Erreur fatale PHP: Exception non capturée 'InvalidargumentException' avec message 'Le répertoire "App /" n'existe pas. " IN / UTILISATEURS / GREG / REPOS / MYApp / Vendeur / Symfony / Symfony / Src / Symfony / C omonent / Finder / Trouver ER.PHP: 650 Trace de pile:
Vérifiez les droits / propriétaire de l'accès; non seulement pour le dossier, mais tous les fichiers à l'intérieur également (pas un utilisateur Mac / Linux. Mais c'est la première chose qui se voit dans mon esprit)