2017-05-31 135 views
2

我在CakePHP 2.9.7上有一个项目。当我在本地机器上运行测试时,我没有收到任何错误。但是,当我尝试运行./Console/cake test app Controller/AlarmsController或测试我的泊坞窗图像中实际上具有相同PHPUnit版本和CakePHP版本的任何其他控制器时,出现错误MissingControllerException: Controller class AlarmsControllerController could not be found.因此,控制器名称中的单词Controller正在使用两次。这个问题发生在https://github.com/cakephp/cakephp/blob/2.next/lib/Cake/TestSuite/ControllerTestCase.php#L339这个函数中。因此,错误跟踪查找方式如下:Cakephp:MissingControllerException:无法找到控制器类AlarmsControllerController

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

所以错误导致getMock功能(https://github.com/cakephp/cakephp/blob/2.next/lib/Cake/TestSuite/ControllerTestCase.php#L362)的调用。但是我无法理解那里发生了什么,为什么它在我的本地机器上以相同的条件运行(PHPUnit,CakePHP版本,同一个项目),但是在docker容器中我得到一个错误。

+0

如果你所尝试'./Console/cake测试应用程序控制器/ Alarms'? – Robert

+0

@Robert,它不工作,我得到'无法打开文件“/project/app/Test/Case/Controller/AlarmsTest.php”。“。同一个'./Console/cake测试应用程序控制器/ AlarmsController'工作在我的本地mashine上。当我尝试测试所有的控制器时,同样的错误会发生:'./Console/cake测试应用程序AllController'。 – Vladislav

+0

随机拍摄...您使用Windows,Docker运行Linux并且控制器文件名有错误的情况? –

回答

0

必须不带后缀的控制器指定控制器名称:

./Console/cake test app Controller/Alarms 

Docs

+0

它不工作,我得到'无法打开文件“/project/app/Test/Case/Controller/AlarmsTest.php”。“。同一个'./Console/cake测试应用程序控制器/ AlarmsController'工作在我的本地mashine上。当我尝试测试所有的控制器时,同样的错误会发生:'./Console/cake测试应用程序AllController'。 – Vladislav

相关问题