gpt4 book ai didi

php - BrowserKit 组件不可用

转载 作者:行者123 更新时间:2023-11-28 20:35:33 24 4
gpt4 key购买 nike

我有一个扩展 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) Tests\Application\EndToEnd\AuthenticationTest::testAuthenticationMethodNotAllowed LogicException: You cannot create the client used in functional tests if the BrowserKit component is not available. Try running "composer require symfony/browser-kit".

运行 composer require symfony/browser-kitcomposer require --dev symfony/browser-kit 都不能解决问题。

我还尝试了提到的修复 here , 没有改善。

这是一个已知问题吗?我应该尝试其他方法吗?

===

更新:这是我的 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>

最佳答案

此错误消息不仅在未安装 BrowserKit 组件时触发,而且在 framework.test 配置选项不是 true 时触发(在本例中test.client 服务永远不会被注册)。

您需要确保此选项已启用,并且您的测试实际上是在 test 环境中执行的。

关于php - BrowserKit 组件不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55224246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com