Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHPStorm中,如何在PHPUnit类的方法中设置断点?_Php_Debugging_Phpunit_Phpstorm - Fatal编程技术网

在PHPStorm中,如何在PHPUnit类的方法中设置断点?

在PHPStorm中,如何在PHPUnit类的方法中设置断点?,php,debugging,phpunit,phpstorm,Php,Debugging,Phpunit,Phpstorm,在PHPStorm中,我想调试一个PHPUnit类。如果我在单元测试类(继承自PHPUnit\u Framework\u TestCase的类)的方法中设置了一个断点,那么每当我运行测试时,PHPStorm都会执行测试,但从不在断点处停止,即使在它用来停止的其他地方也有断点 这是PHPStorm中的一个bug吗?如何在PHPUnit\u Framework\u TestCase方法中停止?仔细检查放置断点的文件是否实际是正在执行的文件。您可能安装了多个版本的PHPUnit 或者在您自己的test

在PHPStorm中,我想调试一个PHPUnit类。如果我在单元测试类(继承自
PHPUnit\u Framework\u TestCase
的类)的方法中设置了一个断点,那么每当我运行测试时,PHPStorm都会执行测试,但从不在断点处停止,即使在它用来停止的其他地方也有断点


这是PHPStorm中的一个bug吗?如何在
PHPUnit\u Framework\u TestCase方法中停止?

仔细检查放置断点的文件是否实际是正在执行的文件。您可能安装了多个版本的PHPUnit

或者在您自己的tests文件夹中重写Testcase并从中扩展。创建一个具有相同名称和参数的函数,以便将断点放在其中。然后,只需将调用连接到父级:

class My_TestCase extends PHPUnit_Framework_TestCase
{
    public function funcToTest($param) {
        return parent::funcToTest($param);
    }
}

然后让您的测试从该testcase类扩展,并将断点放在其中。当您点击它时,您可以进一步深入,以实际了解使用phpunit中的哪个具体文件以及它在磁盘上的位置。

为了使PHPStorm在测试中的断点处停止,您必须“调试”(Shift+F9),但不能“运行”(Shift+F10)您的配置。

尝试查找安装了Xdebug的PHP解释器是否正确。我也遇到过类似的问题,没有断点的原因是在PHPStorm中配置了几个解释器,但没有选择包含Xdebug的正确解释器。如果您的测试用例有@runinsepareprocess注释,或者在phpuint.xml配置文件中,
标记有processIsolation属性,并且该属性的值为true,则调试器不会在断点处停止,您可以通过编辑
PHPStorm设置>语言和框架>PHP
来更改解释器因为它在一个单独的线程中运行

根本没有区别。也许您使用的是“运行”而不是“调试”?否则——请检查路径映射(以防使用符号链接或类似的东西)。这是奇怪的事情。。我肯定使用debug。我倾向于路径问题:我不知道这些“引导文件”、“骨架生成器”和“phpunit skelgen”是什么,也不了解它们之间的关系以及它们有什么好处?你可以在这里找到它是什么以及如何使用它:我在使用PHPStorm 8时遇到同样的问题仅供参考:我禁用了“listen to debug connections”(侦听调试连接)按钮,它开始像往常一样在断点处停止。正如我所说,我确实使用了“debug”(调试)。它确实停止了,但只在不从
PHPUnit\u Framework\u TestCase继承的类的方法中停止