Я создал свежий проект Symfony 4.1.x, но когда я пытаюсь создать и выполнить функциональный тест, я получаю сообщение об ошибке:
PHP Fatal error: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found in /home/tomasz/my_project/tests/ExampleControllerTest.php on line 7
Действия по воспроизведению:
Создать проект
composer create-project symfony/skeleton my_project
Установите phpunit, компоненты функциональных тестов и конструктор для генерации скелета функционального теста.
composer req --dev symfony/phpunit-bridge symfony/css-selector symfony/browser-kit symfony/maker-bundle
Создать пример функционального теста
bin/console make:functional-test ExampleControllerTest
Содержание созданного файла:
<?php
namespace App\Tests;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ExampleControllerTest extends WebTestCase
{
public function testSomething()
{
$client = static::createClient();
$crawler = $client->request('GET', '/');
$this->assertSame(200, $client->getResponse()->getStatusCode());
$this->assertContains('Hello World', $crawler->filter('h1')->text());
}
}
Провести тесты
bin/phpunit
Вывод (после установки зависимостей phpunit):
PHP Fatal error: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found in /home/tomasz/my_project/tests/ExampleControllerTest.php on line 7
Я проверил, есть ли класс Symfony\Bundle\FrameworkBundle\Test\WebTestCase в vendor/. Какие-нибудь подсказки?
phpunit.xml.dist
<?xml version = "1.0" encoding = "UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "http://schema.phpunit.de/6.5/phpunit.xsd"
backupGlobals = "false"
colors = "true"
bootstrap = "vendor/autoload.php"
>
<php>
<ini name = "error_reporting" value = "-1" />
</php>
<testsuites>
<testsuite name = "Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
</whitelist>
</filter>
<listeners>
<listener class = "Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
</phpunit>
@Chris вопрос обновлен
Посмотрите документацию, особенно часть о классе WebTestCase, symfony.com/doc/current/testing.html#your-first-functional-t est. (<env name = "KERNEL_CLASS" value = "App \ Kernel" /> в блоке php)
@Chris Я сделал это, но это не решает проблему
@Chris, это подтверждено и помечено как ошибка - я сделал отчет о проблеме в репозитории symfony / symfony @ github.com/symfony/symfony/issues/29215






Не могли бы вы опубликовать содержимое вашего файла phpunit.xml.dist?