ΠΠ°ΡΠΊΠ°Ρ yii2 application
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Ρ ΠΠ°Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Composer, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅Π° getcomposer.org., (*1)
ΠΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ:, (*2)
php composer.phar create-project --prefer-dist --stability=dev rmrevin/yii2-application my-new-application
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ bower ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ fxp/composer-asset-plugin
. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, (*3)
php composer.phar global require "fxp/composer-asset-plugin:1.0.0"
ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ phing. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ phing Π½Π΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, (*4)
pear channel-discover pear.phing.info
pear install --alldeps phing/phing
ΠΠ΅ΠΏΠ»ΠΎΠΉ
Document root -
* Web - ~/frontend-app/web
, (*5)
- ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ΡΠ΅Π· git
- Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»
.environment.example.php
Π² .environment.php
, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. MYSQL - ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π±Π°Π·Π°, MYSQL_TEST - ΠΊΠΎΠΏΠΈΡ Π±Π°Π·Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΡΡΠΎΠ².
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·Π΅Ρ
./composer.phar install
(Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ·Π΅ΡΠ°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ./getcomposer
)
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
./init
Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
- Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
./frontend migrate
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ frontend Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· npm
npm install
- Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ less Π² css
phing less
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ-Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°
./frontend user/add
, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΏΡΠΎΡΠΈΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΠΈΠΌΡ, email ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π³ΠΎΡΠΎΠ²Π° ΠΊ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ., (*6)
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
- ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ ΡΠ΅ΡΠ΅Π· git
- ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·Π΅Ρ
./composer.phar selfupdate
- ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·Π΅Ρ
./composer.phar update
- Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
./frontend migrate
- ΠΠ½ΠΎΠ²ΠΈΡΡ frontend Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· npm
npm update
- Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ less Π² css
phing less
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π³ΠΎΡΠΎΠ²Π° ΠΊ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ., (*7)
ΠΠΎΠ»ΡΠ°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°ΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π³ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git pull
, Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄:
* phing build/production
- ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°.
* phing build/demo
- ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ demo ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ.
* phing build/dev
- ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ dev ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ., (*8)
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
build/*
ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ):
* phing clear
- ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π»ΠΎΠ³ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
.
* phing clear/frontend
- ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π»ΠΎΠ³ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ frontend.
* phing migrate
- Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
* phing migrate/frontend
- Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ frontend, (*9)
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ
ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ ΠΊΠ°ΡΠΊΠ°ΡΠ° Π²Π·ΡΡ yii2-advance-application. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°ΠΌΠΈ (ΠΎΠ±ΡΡΠ½ΠΎΠ΅ web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, cli ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, rest ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅).
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
* frontend-app - ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅., (*10)
Π’Π°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²:
* common - ΠΎΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΡΡΡΡ (ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ, ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, Ρ
Π΅Π»ΠΏΠ΅ΡΡ)
* frontend-modules - Π·Π΄Π΅ΡΡ Ρ
ΡΠ°Π½ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠ°ΠΊΠΈ ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΈΠ· Π²Π΅Π±Π°. Π ΠΈΠ΄Π΅Π°Π»Π΅, Π·Π΄Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΡΠΌ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ., (*11)
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ²
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ codeception ΡΠ΅ΡΡΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΡ
Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ»Π°ΡΠ°Π΄ΠΊΠΈ., (*12)
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ phing
. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ phing build/codecept
, ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠΎΠΏΠΈΡΡΡΡΡΡ., (*13)
ΠΠ»Ρ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ
erp-app/tests
ΠΈ hub-app/tests
ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ acceptance.suite.yml.dist
Π² acceptance.suite.yml
,
functional.suite.yml.dist
Π² functional.suite.yml
ΠΈ unit.suite.yml.dist
Π² unit.suite.yml
., (*14)
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Ρ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ
Π½Π°ΡΡΡΠΎΠΈΡΡ. Π acceptance.suite.yml
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ PhpBrowser/url
ΠΈ REST/url
ΠΏΠΎΠ΄ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΠ°ΡΠ΅ΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ., (*15)
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ., (*16)
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ², Π½ΡΠΆΠ½ΠΎ "ΡΠΎΠ±ΡΠ°ΡΡ" "Π°ΠΊΡΡΡΠΎΠ²" Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, (*17)
./codecept build -c web-app/tests/codeception.yml
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ Π·Π°ΠΏΡΡΠΊΡ ΡΠ΅ΡΡΠΎΠ²., (*18)
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡΠ½Ρ ΠΏΡΠΎΠ²Π΅ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, (*19)
# Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΡΠ΅ΡΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
./codecept run
# Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ erp ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
./codecept run -c web-app/tests/codeception.yml
# Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ unit ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ hub ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
./codecept run -c web-app/tests/codeception.yml unit
# Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ unit ΡΠ΅ΡΡΠ° Π΄Π»Ρ hub ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
./codecept run -c web-app/tests/codeception.yml unit commands/UserCommandTest.php
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΡΡ ΠΏΠΎΠΊΡΡΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΠΊΠΎΠΌΠΌΠ°Π½Π΄Ρ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --coverage-html.
ΠΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Ρ
ΠΎΠ΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ° ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΠΊΠΎΠΌΠΌΠ°Π½Π΄Ρ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --debug., (*20)
./codecept run --coverage-html
./codecept run -c web-app/tests/codeception.yml --coverage-html --debug