Skip to content
This repository has been archived by the owner on Mar 7, 2023. It is now read-only.

webimpress/phpunit-migration

Repository files navigation

Build Status Coverage Status

PHPUnit migration tool

Migrate project to the newest version of PHPUnit.

[Work In Progress] Use it on the own risk :)

How to use the tool?

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

What the tool is changing?

  1. compose dependencies to the latest PHPUnit versions,
  2. \PHPUnit_Framework_TestCase to namespaced \PHPUnit\Framework\TestCase,
  3. setExpectedException to expectException*,
  4. setUp and tearDown to protected and correct case (setup => setUp etc.),
  5. FQCN in @cover tag (i.e. @covers MyClass to @covers \MyClass),
  6. assertInternalType and assertNotInternalType to more specific assertion method (PHPUnit 7.5+),
  7. getMock to getMockBuilder with other required function calls (PHPUnit 5.4+),
  8. getMockBuilder(...)->...->getMock() to createMock(...) if possible (PHPUnit 5.4+),
  9. assertEquals() and assertNotEquals() with $delta, $maxDepth, $canonicalize and $ignoreCase parameters to more specific assertion method (PHPUnit 7.5+),
  10. add void return type to the following methods: setUp(), tearDown(), setUpBeforeClass(), tearDownAfterClass(), assertPreConditions(), assertPostConditions(), onNotSuccessfulTest(\Throwable $th) (PHPUnit 8.0+),
  11. expectExceptionMessageRegExp to expectExceptionMessageMatches (PHPUnit 8.4+),
  12. 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+),
  1. TODO: getMockBuilder(...)->...->setMethods(...)->getMock() to createPartialMock(...) if possible (PHPUnit 5.5.3+),
  2. TODO: assertContains() and assertNotContains() on string haystack to more specific assertion method (PHPUnit 7.5+),
  3. TODO: $this->assert to self::assert.

What the tool is NOT doing?

  1. changing PHPUnit_Framework_Error_* classes
  2. 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!

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages