Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP APC在单元测试中失败_Php_Apc - Fatal编程技术网

PHP APC在单元测试中失败

PHP APC在单元测试中失败,php,apc,Php,Apc,我们在应用程序中使用APC用户缓存,但我已经开始注意到我们的单元测试中与APC测试相关的各种问题 似乎最终APC开始无法存储和检索结果;虽然大多数测试继续正确运行(因为如果数据没有从缓存中恢复,它们只是重新生成数据),但是专门测试缓存在失败时被清空或重新填充的测试有些烦人。如果这些测试是单独运行的,而不是作为整个测试套件的一部分运行的,那么它们可以正常运行) 问题 还有其他人有类似的问题吗?除了slam_防御设置破坏单元测试的问题(这似乎不是我的问题,因为它不会为我显示任何错误消息),我似乎无

我们在应用程序中使用APC用户缓存,但我已经开始注意到我们的单元测试中与APC测试相关的各种问题

似乎最终APC开始无法存储和检索结果;虽然大多数测试继续正确运行(因为如果数据没有从缓存中恢复,它们只是重新生成数据),但是专门测试缓存在失败时被清空或重新填充的测试有些烦人。如果这些测试是单独运行的,而不是作为整个测试套件的一部分运行的,那么它们可以正常运行)

问题

  • 还有其他人有类似的问题吗?除了slam_防御设置破坏单元测试的问题(这似乎不是我的问题,因为它不会为我显示任何错误消息),我似乎无法通过谷歌在这方面找到太多信息
  • 有人知道如何从APC获得更多调试信息吗?我通过检查apc_store()的返回代码并将额外的success参数传递给apc_fetch()来检测失败,但我从中得到的只是一个布尔成功/失败状态;没有我可以跟进的细节

我猜缓存可能已满。在您的应用程序中,这是您应该能够处理的事情(永远不要假设这些项存在于缓存中)。我不知道APC是如何缓存或过期的东西,所以奇怪的是“以后的东西”没有被保留


在您的单元测试中,每次测试都调用apc\u clear\u cache(“用户”)可以吗?

这是一个好主意,但为了确保每个测试的状态相同,我们已经在每个测试的设置调用中调用了apc\u clear\u cache(“用户”)。如果是这样,然后我会看看我是否能得到一个简短的脚本,持续地触发问题并报告一个bug。事实上,你或多或少是正确的。问题的出现是因为缓存已满,尽管我们试图清空它。调用apc_clear_缓存无法释放内存;即使对每个项目调用apc_delete也无法释放内存。有什么想法吗?不知道真的,对不起。。创建一个可复制的脚本并编写错误报告。