webimpress/phpunit-migration

此包已被废弃,不再维护。未建议替代包。

将您的测试迁移到最新的 PHPUnit 版本

dev-master 2021-08-02 07:00 UTC

This package is auto-updated.

Last update: 2023-03-29 00:18:35 UTC


README

Build Status Coverage Status

PHPUnit 迁移工具

将项目迁移到最新的 PHPUnit 版本。

[进行中] 使用时请自行承担风险 :)

如何使用此工具?

克隆项目

$ git clone https://github.com/webimpress/phpunit-migration.git

进入目录并安装依赖项

$ cd phpunit-migration
$ composer install

要将您的项目更新到最新的 PHPUnit 版本,请进入项目目录并运行

$ ../path/to/phpunit-migration/bin/phpunit-migration migrate

此工具会更改什么?

  1. 将依赖项组合到最新的 PHPUnit 版本中,
  2. \PHPUnit_Framework_TestCase 到命名空间 \PHPUnit\Framework\TestCase
  3. setExpectedExceptionexpectException*
  4. setUptearDownprotected 和正确的命名(setup => setUp 等),
  5. @cover 标签中的 FQCN(例如,@covers MyClass@covers \MyClass),
  6. assertInternalTypeassertNotInternalType 到更具体的断言方法(PHPUnit 7.5+),
  7. getMockgetMockBuilder 以及其他必需的函数调用(PHPUnit 5.4+),
  8. 如果可能,将 getMockBuilder(...)->...->getMock()createMock(...)(PHPUnit 5.4+),
  9. 使用 $delta$maxDepth$canonicalize$ignoreCase 参数将 assertEquals()assertNotEquals() 更改为更具体的断言方法(PHPUnit 7.5+),
  10. 将以下方法的 void 返回类型添加到:setUp()tearDown()setUpBeforeClass()tearDownAfterClass()assertPreConditions()assertPostConditions()onNotSuccessfulTest(\Throwable $th)(PHPUnit 8.0+),
  11. expectExceptionMessageRegExpexpectExceptionMessageMatches(PHPUnit 8.4+),
  12. 使用新的(更易读的)断言名称
  • assertNotIsReadable 替换为 assertIsNotReadable
  • assertNotIsWritable 替换为 assertIsNotWritable
  • assertDirectoryNotExists 替换为 assertDirectoryDoesNotExist
  • assertDirectoryNotIsReadable 替换为 assertDirectoryIsNotReadable
  • assertDirectoryNotIsWritable 替换为 assertDirectoryIsNotWritable
  • assertFileNotExists 替换为 assertFileDoesNotExist
  • assertFileNotIsReadable 替换为 assertFileIsNotReadable
  • assertFileNotIsWritable 替换为 assertFileIsNotWritable
  • assertRegExp 替换为 assertMatchesRegularExpression
  • assertNotRegExp 替换为 assertDoesNotMatchRegularExpression。(PHPUnit 9.1+),
  1. 待办事项:如果可能,将 getMockBuilder(...)->...->setMethods(...)->getMock()createPartialMock(...)(PHPUnit 5.5.3+),
  2. 待办事项:将 assertContains()assertNotContains()string 纱线中更改为更具体的断言方法(PHPUnit 7.5+),
  3. 待办事项:将 $this->assertself::assert

此工具不会做什么?

  1. 更改 PHPUnit_Framework_Error_*
  2. 可能还有其他我现在不记得的事情 ;-)

注意

请记住,这是一个开发者工具,它应该只作为将您的测试迁移到PHPUnit新版本的辅助工具使用。迁移后,请运行所有测试以验证应用的变化是否正确,并且您的测试仍然可以正常工作!