情况
我使用phpunit(4.1.10(和phpunitBundle(4.1.*(来对我的symfony2(2.4.4(应用程序进行单元测试。我使用的是phpwamp(wamp的php别名(5.4.10版本,安装在计算机上的php相当旧(5.3.28版本(。
测试通常效果良好。
问题
当使用router->generate(a_rroute(时,它会返回一个错误。
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问题/绕过它的方法,有什么提示吗?非常感谢您的帮助
我能够解决我的问题。它来自于将phpunit.phar作为可执行文件安装。它由内置的php自动执行,而不是php-wamp。
保持phar的原样,将其放在项目的根目录中,并执行(在命令控制台中(:
phpwamp phpunit.phpar --version
工作良好。
干杯,