php - 使用 Xdebug 调试 Codeception 测试

标签 php testing xdebug codeception

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

你有什么想法吗?提前致谢!

最佳答案

我遇到了同样的问题。 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();

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

Edit Configurations...

现在 添加新配置(Alt + Insert) > PHP 脚本。然后命名运行配置并选择您在上面创建的文件。请记住添加 run 参数:

enter image description here

就是这样。现在您可以从 IDE 中运行您的测试并将它们作为普通脚本进行调试。

关于php - 使用 Xdebug 调试 Codeception 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606807/

相关文章:

php - Ruby 'AES-128-CBC' 和 PHP 'rijndael-128' 加密有什么区别吗?

PHP SQL Select 语句 VS 保存到文件服务器加载

c# - 阴性测试 - 我应该期待确切的异常(exception)吗?

unit-testing - 是否可以通过电子邮件发送 JUnit 测试报告?

php - 尽管安装了 Xdebug,但调试器未命中

php - 使用 PHP 在 Web 上进行实时更新?

php - 如何检查数据库中的重复条目?

firefox - Selenium + 火狐 : enable javascript without using WebDriver

php - 如何使用 netbeans 和 Xdebug 调试 PHP

java - JDK 1.5 是否支持 -Xdebug 选项?