如何在 运行 测试后删除 Symfony 内核的 /cache 目录?

How to remove /cache dir for Symfony Kernel after running tests?

当 运行 使用 Symfony Kernel 测试时,它会创建 /cache/logs 目录。

目前我用 phpunit.xml:

加载自己的 bootstrap.php 文件
<?php

require_once __DIR__.'/../vendor/autoload.php';

// clear cache
register_shutdown_function(function () {
    Nette\Utils\FileSystem::delete(__DIR__.'/cache');
    Nette\Utils\FileSystem::delete(__DIR__.'/logs');
});
  1. 请问有更好的方法吗?
  2. 没有这个额外 bootstrap.php 文件的最佳选择?

注意:我不想将 /cache/logs 目录添加到 .gitignore


在没有帮助的情况下使用了资源:

您可以实施 a test listener.

tests/ClearLogAndCacheTestListener.php

namespace Symplify\DefaultAutowire\Tests;



class ClearLogAndCacheTestListener extends \PHPUnit_Framework_BaseTestListener
{
    public function endTestSuite(\PHPUnit_Framework_TestSuite $suite)
    {
        \Nette\Utils\FileSystem::delete(__DIR__.'/cache');
        \Nette\Utils\FileSystem::delete(__DIR__.'/logs');
    }

}

然后在您的 phpunit.xml 配置中启用 enable the test listener 并从测试文件夹中删除自定义 autoload.php

phpunit.xml

<phpunit
    bootstrap="vendor/autoload.php"
    colors="true"
    syntaxCheck="true"
    verbose="true"
>
    <listeners>
        <listener class="Symplify\DefaultAutowire\Tests\ClearLogAndCacheTestListener">
        </listener>
    </listeners>
[...]
</phpunit>

希望对您有所帮助