У меня есть тест, который расширяет WebTestCase. Это пока мало что делает:
namespace Tests\Application\EndToEnd;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class AuthenticationTest extends WebTestCase
{
public function testAuthenticationMethodNotAllowed()
{
$client = static::createClient();
self::assertTrue(true);
}
}
Но даже этого небольшого количества достаточно, чтобы вызвать ошибку при запуске теста:
Произошла 1 ошибка:
1)
Тесты \ Application \ EndToEnd \ AuthenticationTest :: testAuthenticationMethodNotAllowed
LogicException: вы не можете создать клиент, используемый в функциональных тестах
если компонент BrowserKit недоступен. Попробуйте запустить "композитор
требуется symfony / browser-kit ".
Запуск composer require symfony/browser-kit
, а также composer require --dev symfony/browser-kit
не решает проблему.
Я также попробовал упомянутое исправление здесь , без улучшений.
Это известная проблема? Есть ли другие подходы, которые я должен попробовать?
===
Обновление: вот содержимое моего test.xml
файла:
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="test.client.parameters" type="collection"></parameter>
</parameters>
<services>
<defaults public="false" />
<service id="test.client" class="Symfony\Bundle\FrameworkBundle\Client" shared="false" public="true">
<argument type="service" id="kernel" />
<argument>%test.client.parameters%</argument>
<argument type="service" id="test.client.history" />
<argument type="service" id="test.client.cookiejar" />
</service>
<service id="test.client.history" class="Symfony\Component\BrowserKit\History" shared="false" />
<service id="test.client.cookiejar" class="Symfony\Component\BrowserKit\CookieJar" shared="false" />
<service id="test.session.listener" class="Symfony\Component\HttpKernel\EventListener\TestSessionListener">
<tag name="kernel.event_subscriber" />
<argument type="service_locator">
<argument key="session" type="service" id="session" on-invalid="ignore" />
</argument>
</service>
<service id="test.service_container" class="Symfony\Bundle\FrameworkBundle\Test\TestContainer" public="true">
<argument type="service" id="kernel" />
<argument>test.private_services_locator</argument>
</service>
<service id="test.private_services_locator" class="Symfony\Component\DependencyInjection\ServiceLocator" public="true">
<argument type="collection" />
</service>
</services>
</container>