Класс Symfony \ Bundle \ FrameworkBundle \ Test \ WebTestCase не найден - PullRequest
0 голосов
/ 14 ноября 2018

Я создал свежий проект Symfony 4.1.x, но когда я пытаюсь создать и выполнить функциональный тест, я получаю сообщение об ошибке:

Неустранимая ошибка PHP: Класс 'Symfony \ Bundle \ FrameworkBundle \ Test \ WebTestCase' не найден в /home/tomasz/my_project/tests/ExampleControllerTest.php в строке 7

Шаги для воспроизведения:

  1. Создать проект

    composer create-project symfony/skeleton my_project

  2. Установить phpunit, компоненты функциональных тестов и средство для создания каркаса функционального теста

    composer req --dev symfony/phpunit-bridge symfony/css-selector symfony/browser-kit symfony/maker-bundle

  3. Создать пример функционального теста

    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());
    }
}
  1. Выполнить тесты

    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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...