如何解决在Symfony PHPUnit)问题3.2应用程序欧宝娱乐app下载地址
2016年12月13日·发表的哈维尔Eguiluz
这个问题
如果您的应用程序使用Symfony 3.2和执行P欧宝娱乐app下载地址HPUnit)通过PHAR文件,您将得到以下错误消息:
1 2 3 4 5 6 7 8
美元cd我的项目/美元php phpunit)。phar PHPUnit) 5.6.2塞巴斯蒂安·伯格曼和贡献者。PHP致命错误:未定义的类常量“PARSE_CONSTANT”在供应商/ sy欧宝娱乐app下载地址mfony / symfony / src / symfony /组件/ DependencyInjection /装载机/ YamlFileLoader。php在第396行
解决方案
在Sy欧宝娱乐app下载地址mfony 3.2应用程序不能使用PHAR文件PHPUnit),您必须使用的PHPUnit)桥。首先,如果该组件没有安装在你的项目中,安装如下:
1 2
美元cd我的项目/美元作曲家要求- dev symfony / ph欧宝娱乐app下载地址punit-bridge
然后,用以下命令执行您的测试(第一次需要一些额外的时间,因为它必须建立PHPUnit)归档):
1 2 3 4
美元cd我的项目/美元/供应商/ bin / simple-phpunit#根据您的Symfony的配置,这也可以欧宝娱乐app下载地址:# $ / bin / simple-phpunit
的解释
这个错误发生在被测试的代码依赖与PHPUnit)但需要不同版本的捆绑在Symfony PHPUnit) PHAR。这发生在应用程序欧宝娱乐app下载地址Yaml组件。
PHPUnit)正在努力解决这个问题通过添加一个自定义自动他们所有的PHP名称空间前缀(看到细节),但他们还没有达到了。
与此同时,最好的解决方案是利用工作PHPUnit)桥组件。除了没有(如嵌入相互冲突的关系欧宝娱乐app下载地址symfony / yaml
),它提供了一些额外的特性:
- 它会自动选择最好的版本运行:PHPUnit) 4。x与PHP运行时< = 5.5和PHPUnit) 5。x与PHP运行时> = 5.6;
- 它对测试套件执行当给定一个目录作为参数。
在Symfon欧宝娱乐app下载地址y项目我们遭受这个问题很久了。这就是为什么你可以看到使用simple-phpunit
在.travis.yml
配置文件的包和图书馆,等SensioFrameworkExtraBundle和萨米。
除了欧宝娱乐app下载地址symfony / yaml
你也可以当使用遭受这个问题预言
。读了PHPUnit)桥文档以了解更多关于这个的使用欧宝娱乐app下载地址SYMFONY_PHPUNIT_REMOVE
环境变量。
发表在#欧宝娱乐app下载地址
评论
就可以了谢谢。注意,php zip扩展需要这工作。
丁满Fiddike创业板。Schroeter
说1月13日,2017年在11:23
伟大的工作在命令行上!
遗憾的是我还没有发现如何从PHPStorm运行这个。
有人有一个想法吗?
遗憾的是我还没有发现如何从PHPStorm运行这个。
有人有一个想法吗?
Alex Rock is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now但是你应该正确的东西:Symfony 3,作曲家的“bin-dir”是默认的欧宝娱乐app下载地址“供应商/ bin /”,所以我们不能做“bin / simple-phpunit”,我们要做的”。/供应商/ bin / simple-phpunit”:)