Symfony2+;Codeception给出了;您必须重写KernelTestCase::createKernel();
我创建了一个从WebTestCase继承的新测试。当我运行codeception测试时,出现以下错误:Symfony2+;Codeception给出了;您必须重写KernelTestCase::createKernel();,symfony,codeception,Symfony,Codeception,我创建了一个从WebTestCase继承的新测试。当我运行codeception测试时,出现以下错误: [RuntimeException] You must override the KernelTestCase::createKernel() method. 我不清楚我需要什么来覆盖它。我想要的是一个客户端,它可以调用某个URI来获取我的http响应 这就是测试: public function testSearchAction() { $searchUri
[RuntimeException] You must override the KernelTestCase::createKernel() method.
我不清楚我需要什么来覆盖它。我想要的是一个客户端,它可以调用某个URI来获取我的http响应
这就是测试:
public function testSearchAction()
{
$searchUri = '/search';
$client = static::createClient();
$client->request('GET', $searchUri);
$response = $client->getResponse();
$this->assertSame(Response::HTTP_BAD_REQUEST, $response->getStatusCode());
}
这是我的unit.suite.yml文件
类别名称:UnitTester
modules:
enabled:
- Symfony2:
app_path: '../../app'
var_path: '../../app'
- Doctrine2:
depends: Symfony2
- AppBundle\Helper\Unit
您必须重写KernelTestCase::createKernel()方法的异常可以通过在文件app/phpunit.xml.dist中设置KERNEL_DIR参数来解决。
默认情况下,将对该文件中有关内核目录的部分进行注释
内核的完整路径可能如下所示:
<php>
<server name="KERNEL_DIR" value="C:/symfonyProjects/project1/app" />
</php>
异常您必须重写KernelTestCase::createKernel()方法,可以通过在文件app/phpunit.xml.dist中设置KERNEL_DIR参数来解决。
默认情况下,将对该文件中有关内核目录的部分进行注释
内核的完整路径可能如下所示:
<php>
<server name="KERNEL_DIR" value="C:/symfonyProjects/project1/app" />
</php>
在尝试将WebTestCase扩展的现有测试集成到Codeception时,我遇到了相同的问题。在
tests/functional/\u bootstrap.php中设置KERNEL\u DIR
为我解决了这个问题:
<?php
$_SERVER['KERNEL_DIR'] = __DIR__ . '/../../app/';
我在尝试将WebTestCase扩展的现有测试集成到Codeception时遇到了相同的问题。在tests/functional/\u bootstrap.php中设置KERNEL\u DIR
为我解决了这个问题:
<?php
$_SERVER['KERNEL_DIR'] = __DIR__ . '/../../app/';
可以运行基本的WebTestCase(或简单的PHPUnit\Framework\TestCase)。
在unit.suite.ym文件中,添加boostrap设置:
# tests/unit.suite.ym
modules:
enabled:
- Symfony2:
app_path: '../../app'
var_path: '../../app'
- Doctrine2:
depends: Symfony2
- AppBundle\Helper\Unit
bootstrap: _bootstrap.php
创建tests/unit/_bootstrap.php文件
<?php
$_SERVER['KERNEL_DIR'] = __DIR__ . '/../../app/';
可以运行基本的WebTestCase(或简单的PHPUnit\Framework\TestCase)。
在unit.suite.ym文件中,添加boostrap设置:
# tests/unit.suite.ym
modules:
enabled:
- Symfony2:
app_path: '../../app'
var_path: '../../app'
- Doctrine2:
depends: Symfony2
- AppBundle\Helper\Unit
bootstrap: _bootstrap.php
创建tests/unit/_bootstrap.php文件
<?php
$_SERVER['KERNEL_DIR'] = __DIR__ . '/../../app/';
如果Symfony 4遇到此错误,则解决方案已更改
在Symfony 2和3中,您可以在tests/functional/_bootstrap.php中设置内核目录:
<?php
$_SERVER['KERNEL_DIR'] = __DIR__ . '/../../app/';
<?php
$_SERVER['KERNEL_CLASS'] = App\Kernel::class;
如果Symfony 4遇到此错误,则解决方案已更改
在Symfony 2和3中,您可以在tests/functional/_bootstrap.php中设置内核目录:
<?php
$_SERVER['KERNEL_DIR'] = __DIR__ . '/../../app/';
<?php
$_SERVER['KERNEL_CLASS'] = App\Kernel::class;
为什么要尝试使用Codeception运行WebTestCase测试?使用Codeception的Symfony2模块或使用phpunit运行WebTestCase测试。好的,我扩展了Codeception测试用例,class SearchControllerTest Extendes\Codeception\TestCase\test
那么我如何获得客户端?我扩展了WebTestCase,因为它有Symfony客户端,我可以使用它通过请求和响应进行调用。与测试相比,ead-Cept格式更适合于此类测试。为什么要尝试使用Codeception运行WebTestCase测试?使用Codeception的Symfony2模块或使用phpunit运行WebTestCase测试。好的,我扩展了Codeception测试用例,class SearchControllerTest extends\Codeception\TestCase\Test
如何获取客户端?我扩展了WebTestCase,因为它有一个Symfony客户端,我可以使用它通过请求和响应进行调用。ead-Cept格式比Test更适合这种测试。