【发布时间】:2015-04-12 13:20:21
【问题描述】:
我正在创建一个用 PHP 编写的开源项目,并开始使用 Travis CI 来测试 PHP 版本 5.4、5.5、5.6 和 HHVM。
5.5、5.6 和 HHVM 的测试顺利通过,但 PHP 5.4 出现错误。
此处列出了错误:https://travis-ci.org/CodeRichard/simple-config/jobs/58154496
我注意到它与我用于本地开发并使用 Composer 引入的 PHPUnit 包有关。此版本需要symfony/yaml ~2.1|~3.0。经过一番谷歌搜索,我发现管道符号被用作 OR 符号。这有点让我困惑。
当我阅读~2.1|~3.0 时,我认为它会尝试拉入一个,如果失败,另一个。我知道 symfony/yaml 3.* 需要 PHP 5.5.9,而 2.* 需要 5.3.9。
我不明白为什么它会失败。不是应该引入 symfony/yaml 2.* 吗?
现在,我需要 PHPUnit 4.6.* 进行开发。 PHPUnit 的要求是 PHP 5.3.3。但是,当 Travis CI 尝试测试 PHP 5.4 时,Composer 失败。这完全没有意义。如果它会在 PHP 5.4 上崩溃并且 PHPUnit 4.6 需要 symfony/yaml 3.0,那么要求不应该是 5.5 吗?
我知道我可以将 PHPUnit 降级到 4.5,但我希望保持最新,所以我不想这样做。
【问题讨论】: