Php Symfony 2功能测试

Php Symfony 2功能测试,php,symfony,phpunit,functional-testing,Php,Symfony,Phpunit,Functional Testing,在我的一次功能测试中,我遇到了一个不太符合逻辑的问题 测试非常简单,它只需要请求主页,并搜索其中包含特定类的元素 主页用于显示文章列表的博客。每篇文章可以有多个页面,一对多,每个页面都有自己的特色图片 在twig的主页上,我做$article->getPages->first->getImageUrl 如果我使用相同的装置,并从浏览器访问页面,所有内容都会按应有的方式显示,但当我运行测试时,它会引发一个异常,无法访问未知对象上的getImageUrl,这使我认为它没有从DB中提取文章页面 更奇怪

在我的一次功能测试中,我遇到了一个不太符合逻辑的问题

测试非常简单,它只需要请求主页,并搜索其中包含特定类的元素

主页用于显示文章列表的博客。每篇文章可以有多个页面,一对多,每个页面都有自己的特色图片

在twig的主页上,我做$article->getPages->first->getImageUrl

如果我使用相同的装置,并从浏览器访问页面,所有内容都会按应有的方式显示,但当我运行测试时,它会引发一个异常,无法访问未知对象上的getImageUrl,这使我认为它没有从DB中提取文章页面

更奇怪的是,如果我直接在测试中查询数据库中的文章,并迭代这些文章,它们都可以工作$article->getPages->first->getImageUrl。只有在使用self::$client->request调用时,它才不起作用

我检查了fixture,甚至在查询生成器上添加了一个显式的innerJoin,并手动检查数据库是否有正确的数据

此外,我还有其他的功能测试,加载它们自己的夹具,它们都可以工作,除了这个

下面是我的测试代码。它在单独运行和使用整个测试套件执行时都会失败

public function testSocialBoxPositionWithFeatured()
{
    self::runCommand('h4cc_alice_fixtures:load:files --drop src/SNN/AdminBundle/Fixtures/Nelmio.yml');

    $crawler = self::$client->request('GET', '/'); //go to homepage

    $classes = $crawler
            ->filter('.postsContainer > .col-md-4')
            ->eq(5)
            ->children()
            ->first()
            ->attr("class");

    $this->assertContains("socialBox", $classes);
}

提前感谢,

我发现清除实体管理器可以让我的测试正常工作。。。所以我简单地添加了self::$client->getContainer->get'doctrine->getManager->clear

我发现清除实体管理器可以让我的测试正常工作。。。所以我简单地添加了self::$client->getContainer->get'doctrine->getManager->clear;您可以在解决方案中添加答案并接受它。这将标志着这个问题已经解决。