警告:“无法在本地找到文件'/ 3',要修复它通过环境变量PHP_IDE_CONFIG设置服务器名称并重新启动调试会话。”

问题描述:

每当我进入方法(prepareStatusFilterQuery()),而单元测试与调试我得到警告和调试程序不进入该方法。警告:警告:“无法在本地找到文件'/ 3',要修复它通过环境变量PHP_IDE_CONFIG设置服务器名称并重新启动调试会话。”

在本地找不到文件'/ 3'。要修复它,请将服务器名称设置为 环境变量PHP_IDE_CONFIG,然后重新启动调试会话。

除了这种情况下调试器工作正常。

enter image description here

+1

这发生在你尝试步入模仿对象的代码。 '$ fg'是一个真实的物体还是一个模拟物体?没有解决方案,因为模拟对象是在执行测试期间创建的类的实例。 PhpUnit使用反射来收集有关您要求它模拟的类的信息(公共方法的名称和参数),然后生成新类的PHP代码(扩展了模拟类)并使用'eval() 。 – axiac

+0

@axiac谢谢,如果你关心它的答案,我会解答它。这是一个模拟。 – user6827096

发生这种情况,当您尝试步入模仿对象的代码。

它没有解决方案,因为模拟对象是在执行测试期间创建的类的实例。

PHPUnit的MockObjects使用reflectiongather information关于你问它嘲笑(the namesarguments of the public methods),那么它generates了一类新的PHP代码(即扩展嘲笑类)和runs it using eval()类。

调试器实际上进入该方法,但PhpStorm无法显示源代码,因为它没有源代码。继续使用“Step Into”命令,并且在某个时候控制将返回到源代码从文件加载并且PhpStorm可以找到它的代码(PHPUnit)。

刚刚遇到此错误。在我的情况下,它是引起方法缺少private关键字:

class SomeClass { 
    function some_function_name() { 
    } 
} 

应该像这样:

class SomeClass { 
    private function some_function_name() { 
    } 
}