[英]How to extend WebTestCase in Symfony
我想在 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 創建自己的內核?
請參閱文檔測試(symfony 文檔)
要運行您的功能測試,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,app 目錄中有 phpunit.xml.dist 文件。 通常你可以通過bin/phpunit -c app path_to_the_tests
運行測試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.