7
votes

PHPUnit omettant dans Phpstorm W / Code de sortie 255 dans le projet Symfony 2

J'ai du mal à utiliser PHPUnit de travailler à l'intérieur d'un projet Symfony dans phpstorm - PHPUNIT -C app code> fonctionne bien dans le terminal OSX.

Voici l'erreur: P>

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


3 commentaires

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)


4 Réponses :


7
votes

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>


1 commentaires

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.



2
votes

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).


0 commentaires

2
votes

Étapes pour le faire fonctionner (test dans Phpstorm 8.0.1):

1) dans Préférences> PHP> PHPUNIT Assurez-vous que rien n'est défini pour le fichier de configuration par défaut ou le fichier Bootstrap par défaut.

2) Faites une configuration PHPUnit personnalisée via Exécuter> Modifier des configurations> dans la ligne de commande Sous-section, et assurez-vous de:

a) définir répertoire de travail personnalisé: pour être / absolu / chemin / sur / fournisseur . / p>

b) Vérifiez "Utiliser un fichier de configuration alternative:" et définissez-le sur / absolu / chemin / à / Vendeur / Your_App / (sub_app_if_if_applicable) /phpunit.xml.dist

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.


0 commentaires

0
votes

J'ai couru dans le même problème. Si vous utilisez yii2 / phpstorm, essayez de sélectionner codeception.yml à la place unité.yml sous "fichier de configuration alternatif" dans la section de configuration de débogage.


0 commentaires