PHPUnit 测试:写入/从 Memcached 检索问题

PHPUnit Test: issue with write into / retrieve from Memcached

我使用 Laravel 版本 6.20.31,在我的 PHPUnit 测试中我无法使用 Memcached 存储或检索数据。

我将 CACHE_DRIVER 更新为 phpunit.xml 中的“memcached”值:

...snip...
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="memcached"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    <php>

在我的 PHPUnit 测试中:

Cache::store('memcached')->put('foo', 'bar');
\Log::debug(cache()->getMemcached()->getAllKeys()); // should return an array with all keys stored in Memcached but array is empty

是否无法在 PHPUnit 测试中使用 Memcached? 还是我必须正确配置它?

更新:

dd(config('cache.stores.memcached') returns

.^ array:5 [
  "driver" => "memcached"
  "persistent_id" => "bbsip"
  "sasl" => array:2 [
    0 => null
    1 => null
  ]
  "options" => []
  "servers" => array:1 [
    0 => array:3 [
      "host" => "127.0.0.1"
      "port" => "11211"
      "weight" => 100
    ]
  ]
]

我的config/cache.php

...snip...
        'memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT  => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],

更新 2: 我想在 PHPUnit 中专门使用 Memcached,因为测试应该涵盖在 Memcached 中存储数据的功能(在应用程序中 Memcached 工作得很好)。

出于某种原因使用像

这样的缓存助手
cache()->getMemcached()->getAllKeys();

returns 空数组但是像这样的静态方法

Cache::store('memcached')->get('foo'));

按预期工作并且 returns 键的值 'foo'。