加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – max连接MySql在测试期间到达

发布时间:2020-12-13 13:57:13 所属栏目:PHP教程 来源:网络整理
导读:当我启动我的 PHPUnit测试套件时,我达到MySQL的最大连接限制(200). 热修复是将max_connection设置为500,但是我在Zend Framework 2上下文中寻找更好的解决方案. 我试图放一些tearDown方法,但没有运气似乎是无用的或不完整的解决方案. 这是一个代码示例: prot
当我启动我的 PHPUnit测试套件时,我达到MySQL的最大连接限制(200).

热修复是将max_connection设置为500,但是我在Zend Framework 2上下文中寻找更好的解决方案.

我试图放一些tearDown方法,但没有运气似乎是无用的或不完整的解决方案.

这是一个代码示例:

protected function tearDown()
{
    // i have two entitymanager
    $this->getObjectManager()->get('doctrine.connection.orm_alternate')->close();
    $this->getObjectManager()->get('doctrine.connection.orm_default')->close();
    $this->application = null;
    gc_collect_cycles();
    parent::tearDown();
}

我也试图使用processIsolation转为true,但一些测试是如此之长,以至于我假设我的控制台已经冻结或类似的东西….

使用doctrine2连接和Zend Framework,如何在PHPunit测试期间阻止这种“太多连接”?

到目前为止,我尝试修改了@awons的提示
$这个 – > getObjectManager() – >获得( ‘doctrine.connection.orm_alternate’) – >关闭();


$这个 – > getObjectManager() – >获得( ‘doctrine.entitymanager.orm_alternate’) – >关闭();

是的,我检查了是否拆卸.

我不明白的是:在每个测试中,我的连接的一个新实例被创建,为什么这不是一样的实例? (像单身或注册)?
但是,即使测试通过后,该实例也不会关闭.

我错了,但不知道什么.

在这样做之前,我已经解决了类似的问题:
protected static $my_db_for_testing

public static function setUpBeforeClass()
{
    //create your DB connection once,here.
    $self::$my_db_for_testing = new DbConnectionWhatever()
}

protected function setUp()
{
    $this->my_obj_to_test = new MyObject();
    $this->my_obj_to_test->setDb($this->my_db_for_testing);
}



public function testOne()
{
    //normal test here
}

public static function tearDownAfterClass()
{
    //close the DB connection here
}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读