Я создал свежий проект Symfony 4.1.x, но когда я пытаюсь создать и выполнить функциональный тест, я получаю сообщение об ошибке:
Неустранимая ошибка PHP: Класс
'Symfony \ Bundle \ FrameworkBundle \ Test \ WebTestCase' не найден в
/home/tomasz/my_project/tests/ExampleControllerTest.php в строке 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 фатальная ошибка: класс
'Symfony \ Bundle \ FrameworkBundle \ Test \ WebTestCase' не найден в
/home/tomasz/my_project/tests/ExampleControllerTest.php в строке 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>