如何在 运行 测试后删除 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');
});
- 请问有更好的方法吗?
- 没有这个额外
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>
希望对您有所帮助
当 运行 使用 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');
});
- 请问有更好的方法吗?
- 没有这个额外
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>
希望对您有所帮助