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'。
我使用 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'。