Migrate project to the newest version of PHPUnit.
[Work In Progress] Use it on the own risk :)
Clone the project:
$ git clone https://github.com/webimpress/phpunit-migration.git
Go into the directory and install dependencies:
$ cd phpunit-migration$ composer install
To update your project to the newest version of PHPUnit go to your project directory and run:
$ ../path/to/phpunit-migration/bin/phpunit-migration migrate
compose dependencies to the latest PHPUnit versions,
PHPUnit_Framework_TestCase
to namespaced PHPUnitFrameworkTestCase
,
setExpectedException
to expectException*
,
setUp
and tearDown
to protected
and correct case (setup
=> setUp
etc.),
FQCN in @cover
tag (i.e. @covers MyClass
to @covers MyClass
),
assertInternalType
and assertNotInternalType
to more specific assertion method (PHPUnit 7.5+),
getMock
to getMockBuilder
with other required function calls (PHPUnit 5.4+),
getMockBuilder(...)->...->getMock()
to createMock(...)
if possible (PHPUnit 5.4+),
assertEquals()
and assertNotEquals()
with $delta
, $maxDepth
, $canonicalize
and $ignoreCase
parameters to more specific assertion method (PHPUnit 7.5+),
add void return type to the following methods:setUp()
, tearDown()
, setUpBeforeClass()
, tearDownAfterClass()
,assertPreConditions()
, assertPostConditions()
, onNotSuccessfulTest(Throwable $th)
(PHPUnit 8.0+),
expectExceptionMessageRegExp
to expectExceptionMessageMatches
(PHPUnit 8.4+),
use new (more readable) assertion names:
assertNotIsReadable
replaced by assertIsNotReadable'
,
assertNotIsWritable
replaced by assertIsNotWritable'
,
assertDirectoryNotExists
replaced by assertDirectoryDoesNotExist'
,
assertDirectoryNotIsReadable
replaced by assertDirectoryIsNotReadable'
,
assertDirectoryNotIsWritable
replaced by assertDirectoryIsNotWritable'
,
assertFileNotExists
replaced by assertFileDoesNotExist'
,
assertFileNotIsReadable
replaced by assertFileIsNotReadable'
,
assertFileNotIsWritable
replaced by assertFileIsNotWritable'
,
assertRegExp
replaced by assertMatchesRegularExpression'
,
assertNotRegExp
replaced by assertDoesNotMatchRegularExpression'
.
(PHPUnit 9.1+),
TODO: getMockBuilder(...)->...->setMethods(...)->getMock()
to createPartialMock(...)
if possible
(PHPUnit 5.5.3+),
TODO: assertContains()
and assertNotContains()
on string
haystack to more specific assertion method
(PHPUnit 7.5+),
TODO: $this->assert
to self::assert
.
changing PHPUnit_Framework_Error_*
classes
probably other things I don't remember now ;-)
Note
Please remember it is developer tool and it should be used only as a helper to migrate your tests to newer version of PHPUnit. Always after migration run all your test to verify if applied changes are right and your tests are still working!