我使用的是Laravel版本6.20.31,在我的PHPUnit测试中,我不能使用Memcached存储或检索数据。
我在phpunit.xml中将CACHE_DRIVER更新为"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')返回
.^ 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工作得很好)。
发布于 2021-11-22 09:53:41
出于某种原因,使用cache-helper
cache()->getMemcached()->getAllKeys();返回空数组,但返回如下静态方法
Cache::store('memcached')->get('foo'));按预期工作,并返回键'foo‘的值。
https://stackoverflow.com/questions/69975613
复制相似问题