在执行Behat上下文期间不会加载Doctrine注释

问题描述 投票:1回答:1

我使用Symfony 2.8和Behat 3.3。我在FeatureContext目录中有标准的project_root/features/bootstrap类。在场景执行之前我想要像这样清除DB:

    /**
     * @BeforeScenario
     */
    public function beforeScenario()
    {
        // use Doctrine\Common\DataFixtures\Purger\ORMPurger
        $purger = new ORMPurger($this->em);
        $purger->purge();
    }

但是当我执行测试时,我收到错误:

类XXX中的注释“@Doctrine \ ORM \ Mapping \ Entity”不存在,或者无法自动加载。

我的behat.yml是:

default:
    suites:
        default:
          contexts:
            - FeatureContext:
                em: '@doctrine.orm.entity_manager'

    extensions:
        Behat\Symfony2Extension:
          kernel:
            bootstrap: "vendor/autoload.php"
            env: "test"
            debug: "true"

composer.json自动加载部分:

"autoload": {
        "psr-4": {
            "": "src/"
        },
        "classmap": [
            "app/AppKernel.php",
            "app/AppCache.php"
        ]
    }   
symfony doctrine-orm behat
1个回答
1
投票

如果从behat.yml中删除行bootstrap: "vendor/autoload.php",一切都将按需要运行。

© www.soinside.com 2019 - 2024. All rights reserved.