Symfony 3单元测试通过本地但不在Travis

问题描述:

我有一个Symfony 3项目,测试通过php 5.5 & 5.6但在7.0和7.1失败。在使用Symfony 2.8时,所有相同的测试都通过了。 所有测试都通过本地,但一些travis失败。 显示失​​败测试:https://travis-ci.org/zikula/core/builds/257745627 travis文件:https://github.com/zikula/core/blob/master/.travis.yml#L40 我希望这里有人会有一些见解。我几乎完全丧失。Symfony 3单元测试通过本地但不在Travis

最初在特拉维斯文件中,我刚刚跑过phpunit,直到最近我开始发现像这里报告的错误(https://github.com/symfony/symfony/issues/19532),例如, YamlFileLoader - Undefined class constant 'PARSE_CONSTANT'

,所以我尝试都./src/vendor/symfony/symfony/src/Symfony/Bridge/PhpUnit/bin/simple-phpunitbin/pnpunit(当前设置),他们都失败(但不同!)

,因为它是目前设置了我得到的测试之前,这些错误会失败:

$ ./bin/phpunit PHP警告:PHP启动:无法加载动态库'/home/travis/.phpenv/versions/7.0.7/lib/php/extensions/no-debug-zts-20151012/apc.so ' - /home/travis/.phpenv/versions/7.0.7/lib/php/extensions/no-debug-zts-20151012/apc.so:无法打开共享对象文件:未知的未知文件或目录在线0

警告:PHP启动:无法加载动态库'/home/travis/.phpenv/versions/7.0.7/lib/php/extensions/no-debug-zts-20151012/apc.so' - /home/travis/.phpenv/versions/7.0.7/lib/php/extensions/no-debug-zts-20151012/apc.so:无法打开共享对象文件:没有这样的文件或目录在未知的行0上

PHP警告:PHP启动:无法加载动态库'/home/travis/.phpenv/versions/7.0.7/lib/php/extensions/no-debug-zts-20151012/memcache.so' -/home /travis/.phpenv/versions/7.0.7/lib/php/extensions/no-debug-zts-20151012/memcache.so:无法打开共享目标文件:没有这样的文件或目录在未知的第0行上

警告:PHP启动:无法加载动态库'/home/travis/.phpenv/versions/7.0.7/lib/php/extensions/no-debug-zts-20151012/memcache.so' -/home/travis /。无法打开共享目标文件:没有这样的文件或目录在未知的行0

所以我我猜这是相关的,因为我没有得到这些错误本地或在PHP 5.5/5.6

任何想法如何解决这个?提前致谢!

+0

所以我删除了一些试图加载'api.so'和'memcache.so'的配置文件,这样删除了上面的错误,但并未解决测试失败的问题(请参阅https:// travis-ci .ORG /齐库拉/型芯/建立/ 258167616)。所以显然,PHP错误与测试失败无关。 – craigh

+0

在本地运行测试之前,您是否使用与运行测试相同的PHP版本运行Composer更新? –

+0

不,我想我在本地运行不同的PHP版本 - 5.6.30 – craigh

首先,在PHP 7上运行的composer可能会带来不同版本的依赖关系,如果它运行在PHP 5上。这是因为很多包现在都在支持PHP 5支持。也许你正在获取一个在PHP 7上表现不同的依赖项。

另一个选择是你的代码在PHP 7上的行为不同。例如,如果你得到的失败与排序有关,那么可能是你的算法根据运行的PHP版本以不同的方式排序。

+0

谢谢。事实上,我已经了解到,php7在一些数组排序和排序方面的操作是不同的,这是可能的罪魁祸首。感谢您花时间回答并提供帮助。 – craigh