我有一个扩展WebTestcase的测试。它还没有做太多:
namespace TestsApplicationEndToEnd;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class AuthenticationTest extends WebTestCase
{
public function testAuthenticationMethodNotAllowed()
{
$client = static::createClient();
self::assertTrue(true);
}
}
但是,即使这一点也足以触发测试时的错误:
有1个错误:
1) 测试 Application endto AuthenticationTest :: TestauthenticationMethodnotlowered logicexception:您无法创建功能测试中使用的客户端 如果没有浏览器组件。尝试运行"作曲家" 需要Symfony/浏览器-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="SymfonyBundleFrameworkBundleClient" 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="SymfonyComponentBrowserKitHistory" shared="false" />
<service id="test.client.cookiejar" class="SymfonyComponentBrowserKitCookieJar" shared="false" />
<service id="test.session.listener" class="SymfonyComponentHttpKernelEventListenerTestSessionListener">
<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="SymfonyBundleFrameworkBundleTestTestContainer" public="true">
<argument type="service" id="kernel" />
<argument>test.private_services_locator</argument>
</service>
<service id="test.private_services_locator" class="SymfonyComponentDependencyInjectionServiceLocator" public="true">
<argument type="collection" />
</service>
</services>
</container>
您需要确保启用此选项,并且您的测试实际上是在test
环境中执行的。