使用Xdebug调试Codeception测试

Vit*_*kov 25 php testing xdebug codeception

我用Codeception的ApiGuy写了一些API测试.现在我想在我的PhpStorm 7中设置断点以进行测试调试,但是不知道如何在之后启动调试会话$ vendor/bin/codecept run.我知道--debug选项,但这不是我想要的.

你有什么主意吗?提前致谢!

Mac*_* Sz 28

我遇到了同样的问题.似乎Codeception只带有命令工具,无法调试.我终于编写了自己的PHP运行程序,它基本上是codeception命令可执行文件的简化副本.

实际上你在Linux中所要做的就是从codeception工具中删除shebang 以将其作为PHP脚本运行.但由于其他命令codeception run不太可能成为调试的主题,我已经准备了单独的PHP脚本.它只包含run选项:

<?php
/**
 * Codeception PHP script runner
 */

require_once dirname(__FILE__).'/../vendor/codeception/codeception/autoload.php';

use Symfony\Component\Console\Application;

$app = new Application('Codeception', Codeception\Codecept::VERSION);
$app->add(new Codeception\Command\Run('run'));

$app->run();
Run Code Online (Sandbox Code Playgroud)

完成此操作后,您可以像设置PHPStorm中的任何其他脚本一样设置调试脚本.所以去Select Run/Debug Configuration> Edit Configurations...:

编辑配置...

现在Add New Configuration (Alt + Inssert)> PHP Script.然后命名运行配置并选择上面创建的文件.记得添加run参数:

在此输入图像描述

就是这样.现在,您可以在IDE中运行测试并将其作为普通脚本进行调试.


小智 21

我使用codecept.phar文件,我发现这个确实有效.只需在控制台中输入此命令,然后运行代码测试:

export XDEBUG_CONFIG="idekey=session_name remote_host=localhost profiler_enable=1"
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用批处理脚本快捷方式 (3认同)
  • 这只是正确的答案;-) cli调试 (2认同)

Dez*_*igo 5

我建议使用

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=On -dxdebug.idekey=YOUR_KEY -dxdebug.remote_host=YOUR_IP ../vendor/bin/codecept run
Run Code Online (Sandbox Code Playgroud)