Synapsenschredder

Code, Work, Income.

Quicktipp: phpunit meldet "Missing argument 3 for PHPUnit_TextUI_TestRunner::doRun()"

Wenn das Unit Testing Tool phpunit plötzlich folgende Fehlermeldung meldet, hilft meist ein Update auf die aktuellste Version.

Missing argument 3 for PHPUnit_TextUI_TestRunner::doRun()  

Im Webprojekt

Sofern phpunit über Composer installiert wurde, ist es relativ einfach. Zunächst über [Packagist](https://packagist.org] die letzte Versionnummer herausfinden. Diese dann in der composer.json eintragen. Stand heute ist es momentan die Versiobn 5.2.9.

"require": {
    "phpunit/phpunit": "5.6.3"
}

Dann:

composer update // wenn global die Binary installiert ist

php composer.phar update // wenn local installiert  

Docker Image in Codeship

Wer die Deployment-Plattform Codeship nutzt und dessen Builds wegen dem Fehler fehlschlagen, muss etwas anders vorgehen. Codeship nutzt die Virtualisierungslösung Docker. Darüber wird eine virtuelle Maschine mit einer Linux-Distribution installiert, die unter Umständen eine alte PHPUnit Version mit sich bringt. Da muss man dann über selbstdefinierte Skripte PHPUnit bei jedem Build aktualisieren lassen.

Dazu geht man in Project Settings => Test Settings. Falls dort noch nichts definiert ist, stellt man in dem Select-Feld "Select your technology to prepopulate basic commands" die Option "I want to create my own custom commands" ein. Dann kann man alle möglichen Linux-Kommandos eintragen, die beim Starten der virtuellen Maschinen ausgeführt werden. Dort muss dann eingetragen werden:

composer global remove "phpunit/phpunit" --update-with-dependencies  
composer global require "phpunit/phpunit=5.6.3"  

Hier sollte man darauf achten, die gleiche Versionsnummer zu nennen, die auch in dem zugehörigen Webprojekt gesetzt ist.