所以我有一个应该在PHP 5.3上工作的库 - PHP 7.2。我想在Travis CI上对每个版本进行单元测试,但遇到了PHPUnit的问题。在我的composer.json中,我有这个(在require-dev中):
"phpunit/phpunit": "~4.0",
一直到PHP 7.1都很好但在PHP 7.2中我得到了这个错误:
不推荐使用:不推荐使用each()函数。这条消息将是 进一步打电话被抑制 /home/travis/build/neubert/project/vendor/phpunit/phpunit/src/Util/Getopt.php 第38行
这导致Travis CI的单元测试失败。
我能想到的两个选择:
~5.0
,这意味着我必须停止在Travis CI上测试PHP 5.3 - PHP 5.5。 https://phpunit.de/表示5.0版本与高达7.1的PHP兼容,因此有可能即使这个版本无法运行,此时我还需要~6.0
,这意味着我没有在PHP 5.x上进行单元测试。这些方法都没有吸引我的意义。如果库要与PHP 5.3兼容(例如),我只假设在PHP 5.3上运行单元测试(只要Travis CI支持它)。 PHP 7.2也是如此。
我想我可以让BC打破整个库并说PHP 5.x不再受支持。当然有PHP纯粹主义者可能会赞扬PHP 5.x不再被任何地方所支持,但就像我说的那样,它将成为BC的突破。我想这是主要版本在语义版本控制中的用途,但我也只是假设在我的选择时让BC破坏版本而不是被PHPUnit强制做出决定