【发布时间】:2018-11-26 11:52:00
【问题描述】:
我将 Composer 用于依赖项。
我的项目的依赖项需要 PHP 5.5 或更高版本,因此我想使用 PHPUnit 7 在 PHP 5.5 - 7.2(最新)上测试我的项目。
我用不同的 PHP 版本设置 Travis CI 测试:
language: php
php:
- '5.5'
- '5.6'
- '7.0'
- '7.1'
- '7.2'
- hhvm # on Trusty only
- nightly
问题是 PHPUnit 7 需要 PHP 7.1,所以我无法在 PHP 5.5 - 7.0 上测试项目。
我可以用旧的 PHPUnit 版本测试旧的 PHP 版本,但问题是在 PHPUnit 6 之后,PHPUnit 的代码单元是命名空间的,所以我必须为 PHPUnit 4 - 5 和 PHPUnit 6 - 7 编写不同的测试。
如何使用带有 Travis CI 的 PHPUnit 7 在旧 PHP 版本上测试我的项目?
【问题讨论】:
-
“问题是在 PHPUnit 6 之后,PHPUnit 的代码单元被命名空间,所以我将不得不为 PHPUnit 4 - 5 和 PHPUnit 6 - 7 编写不同的测试”不像 PHPUnit 4.8 那样正确与 PHPUnit 5.6 相同的前向兼容层。 TL;DR:
PHPUnit\Framework\TestCase可与 PHPUnit 4.8、PHPUnit 5.6、PHPUnit 6 和 PHPUnit 7 一起使用。 -
@SebastianBergmann PHPUnit 8 现在具有返回类型声明,因此旧的测试用例现在与它不兼容。现在做什么?我仍然想对 PHP 5.5+ 使用相同的测试用例。
标签: php testing phpunit automated-tests