0

情况

我正在使用 phpunit (4.1.10) 和 phpunitBundle (4.1.*) 来对我的 symfony2 (2.4.4) 应用程序进行单元测试。我正在使用 phpwamp(wamp 的 php 的别名)版本 5.4.10,安装在计算机上的 php 相当旧(版本 5.3.28)。

测试通常工作正常。

问题

当使用 router->generate(a_route) 时,它返回一个错误。

public function setUp()
{
    static::$kernel = static::createKernel();
    static::$kernel->boot();
    $this->em = static::$kernel->getContainer()->get('doctrine.orm.entity_manager');
    $this->container = static::$kernel->getContainer();
}

public function testFoo(){

    /*temp*/
    $x = $this->container->get('router')->generate('my_route');
}

错误:

F.PHP Parse error:  parse error in /path_to_project/project/src/Foo/FooBundle   /Controller/FooController.php on line xx

解决方案:

我观察到解析错误发生在 FooController.php 中,而我根本没有测试控制器(它是一个 entityRepo 测试)。但是,php 行提示在解析错误时通常是无用的,所以 ..

同时,这不会形成真正的解析错误,因为在手动测试时,同一代运行得非常好。

关于这个 phpunit 问题/绕过它的方法的任何提示?非常感谢您的帮助

4

1 回答 1

0

我能够解决我的问题。它来自将 phpunit.phar 安装为可执行文件。它由内置的 php 自动执行,而不是 php wamp。

保持 phar 原样,将其放在项目的根目录中,然后执行(在命令控制台中):

phpwamp phpunit.phpar --version

效果很好。

干杯,

于 2014-06-12T09:55:43.413 回答