我想用symfony编写功能测试,但无法覆盖WebTestCase的createKernel
方法。我们的应用程序使用这样的HttpKernel集成了symfony:
$kernel = new HttpKernel($dispatcher, $controllerResolver, new
RequestStack(), $argumentResolver);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
我尝试从重写的createKernel
方法返回该内核,但是它没有某些方法(例如getContainer()
),此方法稍后会出错。如何为WebTestCase创建自己的内核?
答案 0 :(得分:1)
要运行功能测试,WebTestCase类需要了解 这是引导它的应用程序内核。内核类是 通常在KERNEL_CLASS环境变量中定义(包含在 Symfony提供的默认phpunit.xml.dist文件):
<?xml version="1.0" charset="utf-8" ?>
<phpunit>
<php>
<!-- the value is the FQCN of the application kernel -->
<env name="KERNEL_CLASS" value="App\Kernel" />
</php>
<!-- ... -->
</phpunit>
此外,您在bin目录中具有phpunit runnable,而在应用目录中具有phpunit.xml.dist文件。通常您可以通过bin/phpunit -c app path_to_the_tests