小编Ale*_*ret的帖子

PHPUnit测试和Doctrine,连接太多

对于ZF3和Doctrine的PHPUnit测试,我面临着"连接太多"的问题,因为我每次执行PHPUnit时都会执行~200次测试.我已经发现了一些关于堆栈溢出的问题和答案,但没有这些工作.

我的设置:ZF2/ZF3,Doctrine 2和PHPUnit.

我有一个基础测试类用于所有测试,setUp和tearDown函数如下所示:

public function setUp()
{
    $this->setApplicationConfig(Bootstrap::getConfig());
    Bootstrap::loadAllFixtures();
    if (!static::$em) {
        echo "init em";
        static::$em = Bootstrap::getEntityManager();
    }
    parent::setUp();
    ....
}

public function tearDown()
{
    parent::tearDown();
    static::$em->flush();
    static::$em->clear();
    static::$em->getConnection()->close();
    $refl = new \ReflectionObject($this);
    foreach ($refl->getProperties() as $prop) {
        if (!$prop->isStatic() && 0 !== strpos($prop->getDeclaringClass()->getName(), 'PHPUnit_')) {
            $prop->setAccessible(true);
            $prop->setValue($this, null);
        }
    }
    gc_collect_cycles();
}

public static function (Bootstrap::)loadAllFixtures()
{
    static::$em->getConnection()->executeUpdate("SET foreign_key_checks = 0;");
    $loader = new Loader();
    foreach (self::$config['data-fixture'] as $fixtureDir) {
        $loader->loadFromDirectory($fixtureDir);
    }
    $purger = new ORMPurger(static::$em);
    $executor …
Run Code Online (Sandbox Code Playgroud)

php doctrine zend-framework doctrine-orm zend-framework2

6
推荐指数
1
解决办法
686
查看次数