History: Tiki Unit Testing with PhpStorm
Source of version: 17 (current)
Copy to clipboard
((Tiki Unit Testing)) with PhpStorm
Start by creating a test database, as explained in {ALINK(aname="Configuring a database for phpunit testing")}this section{ALINK}.
!! Dependencies
You need to install dependencies (including development packages), using composer. These packages are not installed with the basic installation (i.e., running -+sh setup.sh+- and choosing option c). To install using composer, start in the tiki root and runf the following commands:
{CODE(colors="shell" theme="default")}# move to the vendor_bundled directory first to avoid an error about not finding the composer.json file
$ cd vendor_bundled
$ php ../temp/composer.phar install --prefer-dist 2>&1 | sed '/Warning: Ambiguous class resolution/d'
{CODE}
!! Settings/Preferences
{img fileId="1090"}
!!! PHPUnit
Installing and configuring PHPUnit can be difficult. If you get an unhelpful "PHPUnit version: Not installed" error, use the controls at the right.
If you select a phar, you need to have a PHP interpreter defined. Your PHPUnit version must also be compatible with your PHP version (PHPUnit 6 is not compatible with PHP 5).
!!! PHPUnit parameters
The lib/test/phpunit.xml configuration file needs to be used. This can be done either with the default setting as shown in the above screenshot, or per-project, in Run/Debug Configurations (not used below).
And according to kroky6, the bootstrap file should also be set (to lib/test/bootstrap.php). This can be done using the default setting as shown in the above screenshot. This could also be done per-project, in Run/Debug Configurations (not used below), but there is no specific parameter for that.
!! Add a Run/Debug Configurations
For each project, in Run -> Edit Configurations..., use the plus icon and select "PHPUnit".
{img fileId="1091"}
!! Click Run or Debug on the Toolbar
{img fileId="1092"}
! Debugging
If a debugger is properly setup, using Debug should allow to debug tests. However, [https://youtrack.jetbrains.com/issue/WI-18992|Debug is poor/broken with PHPUnit]. It improperly redirects to Run automatically (so you could be under the impressions that breakpoints are ignored) and/or doesn't offer feature parity with Run, so be attentive when debugging with PHPUnit.