Closed
Description
Q | A |
---|---|
Bug report? | yes |
Feature request? | |
BC Break report? | |
RFC? | |
Symfony version | 3.3.dev |
I'm using Symfony Flex and now I'm trying to make some functional tests to that project and it seems like KernelTestCase.php
file method protected static function getKernelClass()
doesn't work with flex Kernel.php which have namespace defined:
<?php
namespace App;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
use Symfony\Component\Routing\RouteCollectionBuilder;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
final class Kernel extends BaseKernel
...
And then if we take a closer look about that method:
protected static function getKernelClass()
{
if (isset($_SERVER['KERNEL_DIR'])) {
$dir = $_SERVER['KERNEL_DIR'];
if (!is_dir($dir)) {
$phpUnitDir = static::getPhpUnitXmlDir();
if (is_dir("$phpUnitDir/$dir")) {
$dir = "$phpUnitDir/$dir";
}
}
} else {
$dir = static::getPhpUnitXmlDir();
}
$finder = new Finder();
$finder->name('*Kernel.php')->depth(0)->in($dir);
$results = iterator_to_array($finder);
if (!count($results)) {
throw new \RuntimeException('Either set KERNEL_DIR in your phpunit.xml according to https://symfony.com/doc/current/book/testing.html#your-first-functional-test or override the WebTestCase::createKernel() method.');
}
$file = current($results);
$class = $file->getBasename('.php');
require_once $file;
return $class;
}
We see that there is nothing to handle namespace of that Kernel class.
And below phpunit
stacktrace:
1) App\Tests\Functional\Controller\DefaultControllerTest::testThatDefaultRouteReturns200
Error: Class 'Kernel' not found
/home/wunder/PhpstormProjects/symfony-flex-backend/vendor/symfony/framework-bundle/Test/KernelTestCase.php:172
/home/wunder/PhpstormProjects/symfony-flex-backend/vendor/symfony/framework-bundle/Test/KernelTestCase.php:148
/home/wunder/PhpstormProjects/symfony-flex-backend/vendor/symfony/framework-bundle/Test/WebTestCase.php:33
/home/wunder/PhpstormProjects/symfony-flex-backend/tests/Functional/Controller/DefaultControllerTest.php:22
Metadata
Metadata
Assignees
Labels
No labels