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

Tar*_*Tar 5 php debugging phpunit phpstorm

在PHPStorm中,我想调试一个PHPUnit类.如果我在单元测试类(继承的类PHPUnit_Framework_TestCase)的方法中设置断点,每当我运行测试时,PHPStorm执行测试,但永远不会在断点处停止,即使在其他地方有断点过去常常停下来.

这是PHPStorm中的错误吗?怎么停在一个PHPUnit_Framework_TestCase方法?

小智 8

为了使PHPStorm在测试中的断点处停止,你必须"调试"(Shift + F9)而不是"运行"(Shift + F10)你的配置.


小智 5

如果您的测试用例具有@runInSeparateProcess注释,或者在phpuint.xml配置文件中,该<phpunit processIsolation="true">标记具有processIsolation属性,并且其值为true,则调试器不会在断点处停止,因为它在单独的线程中运行。


hak*_*kre 1

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

或者覆盖您自己的测试文件夹中的测试用例并从中扩展。创建一个与要在其中放置断点的名称和参数相同的函数。然后只需将调用连接到父级:

class My_TestCase extends PHPUnit_Framework_TestCase
{
    public function funcToTest($param) {
        return parent::funcToTest($param);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后让您的测试从该测试用例类扩展,并将断点放在那里。当你点击它时,你可以更深入地实际找出使用了 phpunit 中的哪个具体文件以及它在磁盘上的位置。