在 Symfony 2 中加载用于功能测试的夹具:调用未定义的方法 MyControllerTest::loadFixtures())

Loading Fixtures for functional tests in Symfony 2: Call to undefined method MyControllerTest::loadFixtures())

我正在尝试找到将我在 Symfony 2.6 中的装置加载到 运行 功能测试的简单方法。这是一个很常见的问题,已经被问过几次了,但是到目前为止我找到的答案并没有达到我的预期:

对于我认为非常标准的任务,这两种情况(使用语句和手动代码)都有很多开销。

另一方面,这些相同的帖子推荐 LiipFunctionalTestBundle。继续努力,这是我在安装说明中读到的内容:

write fixture classes and call loadFixtures() method from the bundled Test\WebTestCase class. Please note that loadFixtures() will delete the contents from the database before loading the fixtures."

所以我尝试了...

namespace AppBundle\Test\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class MyControllerTest extends WebTestCase
{
    public function setUp()
    {
        $classes = array(
                'AppBundle\DataFixtures\LoadUserData',
        );
        $this->loadFixtures($classes);
    }
    ...
}

没有运气:

Call to undefined method AppBundle\Tests\Controller\MyControllerTest::loadFixtures() in /gitrepos/myproject/src/AppBundle/Tests/Controller/MyControllerTest.php on line 15

静态调用给出相同的错误...

self:loadFixtures($classes);

我真的认为我遗漏了一些非常明显的东西。任何人都可以让我回到正轨吗?

我可以看到你在使用

Oro\Bundle\TestFrameworkBundle\Test\WebTestCase

作为基础 class 而我认为你应该使用

Liip\FunctionalTestBundle\Test\WebTestCase

能够调用此方法。