phpunit - 在所有测试之前运行命令

标签 phpunit symfony

我创建了一个 Symfony 命令来将我的应用程序重置为初始状态。要从 cli 运行该命令,我需要输入:

php bin/console app:reset

我想运行那个命令前一次单元测试。我可以做到 每次测试前肯定在之前所有类(class) .因此我使用了该代码:
public function setUp()
{
    $kernel = new \AppKernel('test', true);
    $kernel->boot();
    $app = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
    $app->setAutoExit(false);

    $app->run(new ArrayInput([
        'command' => 'app:reset', ['-q']
    ]), new NullOutput());
}

如上所述,在每次测试之前和使用 setUpBeforeClass() 时效果都很好。我可以在每节课之前都有它,但在所有测试之前一次就足够了,因为该命令需要一些时间才能运行。

最佳答案

Symfony 文档解释了如何做到这一点:How to Customize the Bootstrap Process before Running Tests

总之,需要修改phpunit.xml.dist调用您自己的 Bootstrap 而不是默认 Bootstrap (并委托(delegate)给默认 Bootstrap )。

关于phpunit - 在所有测试之前运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37653004/

相关文章:

symfony - SonataUserBundle 覆盖表单配置文件

symfony - 使用 Symfony 的 flashBag session 进行单元测试

php - 无法通过 PEAR 安装 PHPUnit,需要 PEAR Installer >= 1.9.2,无法从 1.9.0 升级 PEAR

php - 既然 PEAR 方法不再可行,如何为 WAMP 安装 PhpUnit?

php - 如何测试用 Laravel 点击的 div 的结果? (PHPunit)

php - 如何修复 Laravel 8 测试中的 "419 - Page expired"错误?

symfony - Safari - 由于访问控制检查,XMLHttpRequest 无法加载 X。 [检查员]

php - Symfony2 : Redirecting to last route and flash a message?

php - 如何使用 Twig 和 Symfony2 创建确认框以将用户重定向到页面

Symfony 4 - Lexik/JwtAuthenticationBundle - 无法更改 token_ttl 默认值