将项目迁移到最新版本的 PHPUnit。
[正在进行中] 使用它需要您自担风险:)
克隆项目:
$ git 克隆 https://github.com/webimpress/phpunit-migration.git
进入目录并安装依赖项:
$ cd phpunit-migration$ 作曲家安装
要将您的项目更新到最新版本的 PHPUnit,请转到您的项目目录并运行:
$ ../path/to/phpunit-migration/bin/phpunit-migration 迁移
编写对最新 PHPUnit 版本的依赖项,
PHPUnit_Framework_TestCase
到命名空间PHPUnitFrameworkTestCase
,
setExpectedException
为expectException*
,
setUp
和tearDown
以受protected
且正确的大小写( setup
=> setUp
等),
@cover
标签中的 FQCN(即@covers MyClass
到@covers MyClass
),
assertInternalType
和assertNotInternalType
到更具体的断言方法(PHPUnit 7.5+),
getMock
到getMockBuilder
以及其他所需的函数调用(PHPUnit 5.4+),
getMockBuilder(...)->...->getMock()
到createMock(...)
如果可能的话(PHPUnit 5.4+),
带有$delta
、 $maxDepth
、 $canonicalize
和$ignoreCase
参数的assertEquals()
和assertNotEquals()
更具体的断言方法(PHPUnit 7.5+),
将 void 返回类型添加到以下方法: setUp()
、 tearDown()
、 setUpBeforeClass()
、 tearDownAfterClass()
、 assertPreConditions()
、 assertPostConditions()
、 onNotSuccessfulTest(Throwable $th)
(PHPUnit 8.0+)、
从expectExceptionMessageRegExp
到expectExceptionMessageMatches
(PHPUnit 8.4+),
使用新的(更易读的)断言名称:
assertNotIsReadable
替换为assertIsNotReadable'
,
assertNotIsWritable
替换为assertIsNotWritable'
,
assertDirectoryNotExists
替换为assertDirectoryDoesNotExist'
,
assertDirectoryNotIsReadable
替换为assertDirectoryIsNotReadable'
,
assertDirectoryNotIsWritable
替换为assertDirectoryIsNotWritable'
,
assertFileNotExists
替换为assertFileDoesNotExist'
,
assertFileNotIsReadable
替换为assertFileIsNotReadable'
,
assertFileNotIsWritable
替换为assertFileIsNotWritable'
,
assertRegExp
替换为assertMatchesRegularExpression'
,
assertNotRegExp
替换为assertDoesNotMatchRegularExpression'
。 (PHPUnit 9.1+),
TODO: getMockBuilder(...)->...->setMethods(...)->getMock()
到createPartialMock(...)
如果可能的话(PHPUnit 5.5.3+),
TODO: string
haystack 上的assertContains()
和assertNotContains()
到更具体的断言方法(PHPUnit 7.5+),
TODO: $this->assert
到self::assert
。
更改PHPUnit_Framework_Error_*
类
可能还有其他我现在不记得的事情;-)
笔记
请记住,它是开发人员工具,只能用作将测试迁移到较新版本的 PHPUnit 的帮助程序。迁移后始终运行所有测试,以验证应用的更改是否正确以及您的测试是否仍然有效!