| 问 | 一个
| --------------------| ---------------
| PHPUnit 版本 | ~4.7.0 \|\| ~5.0.0 \|\| ~5.1.0 \|\| ~5.2.0
| PHP版本 | 不相关的
| 安装方法 | 作曲家
PHP Timer v2 已经发布。 它与提到的 PHPUnit 不兼容,因为具有给定版本的 PHPUnit 需要... >= 1
而不是^1
。 为此,该 PHPUnit(在遗留项目中)的任何新安装都将在执行期间崩溃:
https://travis-ci.org/PHPUnitGoodPractices/Traits/jobs/341148960#L978
PHP 致命错误:未捕获的错误:在 /home/travis/build/PHPUnitGoodPractices/Traits/vendor/phpunit/phpunit/src/Framework/TestResult 中找不到类“PHP_Timer”。 php:577
它将特别打击那些无法直接升级 PHPUnit 的遗留 PHP 项目。
是的,我知道这将被视为未维护版本的问题,并且可以开箱即用地关闭,但最终问题是 php-timer 专业刚刚发布。
针对受影响的旧 PHPUnit 版本的悲伤用户的解决方案:
添加到您的composer.json
:
"conflict": {
"phpunit/php-timer": ">=2",
}
这基本上将使 php-timer 的 PHPUnit 要求为 ^1,就像在其他 PHPUnit 版本中一样
不幸的是,PHPUnit 4.7 在其composer.json
有"phpunit/php-timer": ">=1.0.6"
composer.json
。 然而,PHPUnit 4.7 很久以前就被 PHPUnit 4.8 取代了。 没有理由不从 PHPUnit 4.7 更新到 PHPUnit 4.8。 PHPUnit 4.8 在其composer.json
有"phpunit/php-timer": "^1.0.6"
composer.json
。
您还提到了 PHPUnit 5.0、PHPUnit 5.1 和 PHPUnit 5.2。 所有这些版本的"phpunit/php-timer": "^1.0.6"
中都有composer.json
。
你希望我在这里做什么? 发布具有更新composer.json
的 PHPUnit 4.7 新版本? 对不起,但这不会发生。 您在https://github.com/sebastianbergmann/phpunit/issues/3008#issuecomment -365430405 中提供的解决方案应该足够好了。 当然,正确的解决方案是至少更新到 PHPUnit 4.8 或使用 PHPUnit 4.7 的 PHAR。
您还提到了 PHPUnit 5.0、PHPUnit 5.1 和 PHPUnit 5.2。 所有这些版本的 composer.json 中都有 "phpunit/php-timer": "^1.0.6"。
不, 5.2.x-dev
有phpunit/php-timer: ^1.0.6
,
但最后一个稳定版本 5.2,
5.2.12
有phpunit/php-timer: >=1.0.6
因为 5.0.x、5.1.x 和 5.2.x 也会受到影响。
PHP Timer 刚刚发布,发布的事实给遗留的 PHPUnit 带来了问题,我在我的公司和副项目中遇到了重创,所以这个线程的目的是提出问题(所以它可以被同样击中它的用户找到)并提供可能的解决方法。
正如我在最初的帖子中所说,我不希望 phpunit 4/5 发布新版本。 谢谢!
最有用的评论
针对受影响的旧 PHPUnit 版本的悲伤用户的解决方案:
添加到您的
composer.json
:这基本上将使 php-timer 的 PHPUnit 要求为 ^1,就像在其他 PHPUnit 版本中一样