Symfony PHPUnit TestListener在PhpStorm中不工作
我使用的是Symfony 2、PHPUnit 3.7.10和PhpStorm 5.0.4 我在Symfony PHPUnit TestListener在PhpStorm中不工作,symfony,phpunit,phpstorm,Symfony,Phpunit,Phpstorm,我使用的是Symfony 2、PHPUnit 3.7.10和PhpStorm 5.0.4 我在名称空间Acme\DemoBundle\Tests中有一个类MyTestListener(实现PHPUnit\u Framework\u TestListener) 当我使用vendor/bin/phpunit.bat-c app/从CLI调用phpunit时 监听器工作正常,测试成功 我发现了这一点:但这似乎是另一个问题 但是当我在PhpStorm中启动测试时,监听器没有加载,一些对象应该被注入到一个
名称空间Acme\DemoBundle\Tests
中有一个类MyTestListener(实现PHPUnit\u Framework\u TestListener)
当我使用vendor/bin/phpunit.bat-c app/
从CLI调用phpunit时
监听器工作正常,测试成功
我发现了这一点:但这似乎是另一个问题
但是当我在PhpStorm中启动测试时,监听器没有加载,一些对象应该被注入到一个抽象测试类中,在本例中为null。我还注意到,当我在MyTestListener类中使用断点进行调试时,调试器不会在此类中停止,其他断点也可以正常工作
phpunit.xml条目:
<listeners>
<listener class="Acme\DemoBundle\Tests\MyTestListener" file="../src/Acme/DemoBundle/Tests/MyTestListener.php">
</listener>
</listeners>
我还尝试添加一个空元素,但没有帮助
在PhpStorm的Run/Debug配置中,我指定了phpunit.xml和引导文件。
我还为命令行/解释器添加了这个选项:-d auto\u prepend\u file=vendor/autoload.php
phpunit.xml中的侦听器配置似乎已被解析,但不起作用。当我将类名更改为无效的文件/类时,我得到一个错误,即文件无法打开流。我还尝试使用绝对文件路径或将斜杠改为反斜杠,但没有任何效果。真遗憾。。。我发现了自己的错误 我从CLI执行所有测试,但在PhpStorm中只有一个测试类,因此套件名称不同,在我的侦听器类中,我只在套件名称匹配时执行这些操作:
if ($suite->getName() == "db-tests") {...}
因此,解决方案是将表达式扩展到
$name = $suite->getName();
if ($name == "db-tests" ||
strpos($name, 'Acme\DemoBundle\Tests\Database') !== false) {...}