將專案遷移到最新版本的 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 的幫助程式。遷移後始終執行所有測試,以驗證應用程式的變更是否正確以及您的測試是否仍然有效!