Testing environment setup ====================== > Note: This section is under development. Yii 2 has officially maintained integration with [`Codeception`](https://github.com/Codeception/Codeception) testing framework that allows you to create the following test types: - [Unit testing](test-unit.md) - verifies that a single unit of code is working as expected; - [Functional testing](test-functional.md) - verifies scenarios from a user's perspective via browser emulation; - [Acceptance testing](test-acceptance.md) - verifies scenarios from a user's perspective in a browser. Yii provides ready to use test sets for all three test types in both [`yii2-basic`](https://github.com/yiisoft/yii2-app-basic) and [`yii2-advanced`](https://github.com/yiisoft/yii2-app-advanced) project templates. In order to run tests you need to install [Codeception](https://github.com/Codeception/Codeception). You can install it either locally - for particular project only, or globally - for your development machine. For the local installation use following commands: ``` composer require "codeception/codeception=2.1.*" composer require "codeception/specify=*" composer require "codeception/verify=*" ``` For the global installation you will need to use `global` directive: ``` composer global require "codeception/codeception=2.1.*" composer global require "codeception/specify=*" composer global require "codeception/verify=*" ``` If you've never used Composer for global packages before, run `composer global status`. It should output: ``` Changed current directory to ``` Then add `/vendor/bin` to you `PATH` environment variable. Now we're able to use `codecept` from command line globally. > Note: global installation allows you use Codeception for all projects you are working on your development machine and allows running `codecept` shell command globally without specifying path. However, such approach may be inappropriate, for example, if 2 different projects require different versions of Codeception installed. For the simplicity all shell commands related to the tests running around this guide are written assuming Codeception has been installed globally.