* master: (22 commits) Fixes #4971: Fixed hardcoded table names in `viaTable` expression in model generator Fixed test break. Fixes #4955: Replaced callbacks with events for `ActiveForm` Fix brackets Rename `\yii\web\User` component param for consistency Html::button() type is `button` by default Fix bug in Estonian translation Typo fixed inside \yii\rest\CreateAction Fixed test break. Fixed test case. note about validation rules order Return a fixtures cleanup in case of a failing test Update finnish translation skip fixture controller test on HHVM Make unit tests cleanup a DB after finish Fixes #4945: Added `yii\test\ArrayFixture` added array fixture class minor doc adjustment [skip ci] Fixes #4948. Thanks, @johan162 Fixes #4947 ... Conflicts: framework/UPGRADE.md
Yii 2.0 Unit tests
DIRECTORY STRUCTURE
unit/ Unit tests to run with PHPUnit
data/ models, config and other test data
config.php this file contains configuration for database and caching backends
framework/ the framework unit tests
runtime/ the application runtime dir for the yii test app
web/ webapp for functional testing
HOW TO RUN THE TESTS
Make sure you have PHPUnit installed and that you installed all composer dependencies (run composer update in the repo base directory).
Run PHPUnit in the yii repo base directory.
phpunit
You can run tests for specific groups only:
phpunit --group=mysql,base,i18n
You can get a list of available groups via phpunit --list-groups.
TEST CONFIGURATION
PHPUnit configuration is in phpunit.xml.dist in repository root folder.
You can create your own phpunit.xml to override dist config.
Database and other backend system configuration can be found in unit/data/config.php
adjust them to your needs to allow testing databases and caching in your environment.
You can override configuration values by creating a config.local.php file
and manipulate the $config variable.
For example to change MySQL username and password your config.local.php should
contain the following:
<?php
$config['databases']['mysql']['username'] = 'yiitest';
$config['databases']['mysql']['password'] = 'changeme';