我遇到了“连接太多”的问题'并且“内存耗尽”#39;运行许多测试时出错。我已按照this answer中的步骤操作,包括确保代码覆盖率已停用,将cacheTokens
设置为false,并添加建议的tearDown
方法。我也升级到了phpunit 4.7,但是我的每次测试仍然会增加内存使用量,过了一段时间,mysql连接太多了。
Mysql:我确保所有对该连接的引用都无效,但似乎连接仍然存在,因为脚本仍然在运行。我找到的一个解决方法是将连接超时参数设置为3秒,但我不知道可能有什么样的副作用。到目前为止,我已经看到一些" MySQL服务器已经消失了#34;消息
这是我当前的tearDown
方法
$sm = $this->getApplicationServiceLocator();
$adapter = $sm->get('Adapter\Db');
$adapter->getDriver()->getConnection()->disconnect();
//reset zf2 app
$this->reset();
//remove phpunit instance variables
$refl = new \ReflectionObject($this);
foreach ($refl->getProperties() as $prop) {
if (!$prop->isStatic() && 0 !== strpos($prop->getDeclaringClass()->getName(), 'PHPUnit_')) {
//if (true) {
$prop->setAccessible(true);
$prop->setValue($this, null);
}
}
parent::tearDown();
如何确保正确处理内存和mysql连接,以便我可以运行越来越多的测试?