2017-05-31 2 views
2

J'ai un projet sur Cakephp 2.9.7. Lorsque je lance un test sur ma machine locale, je n'ai aucune erreur. Mais, quand j'essaie d'exécuter ./Console/cake test app Controller/AlarmsController ou de tester tout autre contrôleur dans mon image docker, qui a la même version de PHPUnit et la même version de Cakephp, j'obtiens une erreur MissingControllerException: Controller class AlarmsControllerController could not be found. Donc le mot Controller dans le nom du contrôleur est utilisé deux fois. Le problème se produit dans https://github.com/cakephp/cakephp/blob/2.next/lib/Cake/TestSuite/ControllerTestCase.php#L339 cette fonction. Ainsi, la trace d'erreur semble la manière suivante:Cakephp: MissingControllerException: Classe de contrôleur AlarmsControllerController introuvable

/project/lib/Cake/TestSuite/ControllerTestCase.php:347 
/project/lib/Cake/TestSuite/ControllerTestCase.php:362 

Ainsi l'erreur provoque l'appel de la fonction getMock (https://github.com/cakephp/cakephp/blob/2.next/lib/Cake/TestSuite/ControllerTestCase.php#L362). Mais je ne peux pas comprendre ce qui se passe là-bas, et pourquoi cela fonctionne sur ma machine locale avec des conditions égales (PHPUnit, version Cakephp, le même projet), mais dans le conteneur docker je reçois une erreur.

+0

si vous essayez 'application de test ./Console/cake Controller/Alarms'? – Robert

+0

@Robert, ça ne marche pas, j'obtiens 'Impossible d'ouvrir le fichier" /project/app/Test/Case/Controller/AlarmsTest.php ".'. Le même './Console/cake test app Controller/AlarmsController' fonctionne sur ma machine locale. Et la même erreur se produit lorsque j'essaie de tester tous les contrôleurs: './Console/cake test app AllController'. – Vladislav

+0

Prise de vue aléatoire ... Vous utilisez Windows, Docker exécute Linux et le nom du fichier du contrôleur est erroné? –

Répondre

0

Vous devez spécifier le nom du contrôleur sans le suffixe Controller:

./Console/cake test app Controller/Alarms 

Docs

+0

ça ne marche pas, j'obtiens 'Impossible d'ouvrir le fichier" /project/app/Test/Case/Controller/AlarmsTest.php ".'. Le même './Console/cake test app Controller/AlarmsController' fonctionne sur ma machine locale. Et la même erreur se produit lorsque j'essaie de tester tous les contrôleurs: './Console/cake test app AllController'. – Vladislav