Первый запуск тестов

Всё про тестирование в Yii 2.0
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Первый запуск тестов

Сообщение jakiro »

Приветствую.
Пора бы писать уже тесты :) Смотрю мануалы по codeception, прописал в composer.json расширение codeception, затем оно закачалось, стащил папку yii2-app-advanced/tests.
Однако в некоторых мануалах, авторы запускают condeception.phar, который лежит в yii2-app-advanced/tests/codeception/frontend/
Но в yii2-app-advanced его нет, где всязть этот исполняемый файл?
https://github.com/yiisoft/yii2-app-adv ... n/frontend тут одни .yml
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

jakiro писал(а):прописал в composer.json расширение codeception, затем оно закачалось
Ну так там и лежит:

Код: Выделить всё

vendor/bin/codecept run
Если ставить глобально (как в tests/README.md), то будет анлогично в глобальной папке vendor вашего Composer-а.

http://www.elisdn.ru/blog/84/seo-servic ... on-testing
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):
jakiro писал(а):прописал в composer.json расширение codeception, затем оно закачалось
Ну так там и лежит:

Код: Выделить всё

vendor/bin/codecept run
Если ставить глобально (как в tests/README.md), то будет анлогично в глобальной папке vendor вашего Composer-а.

http://www.elisdn.ru/blog/84/seo-servic ... on-testing
Я видел эту статью, только я на кофигах ничего не понял :(
Я устанавливал codeception строго по мануалу http://www.yiiframework.com/doc-2.0/ext ... index.html
А папку tests стащил из шаблона yii advanced, выходит, что cодержимое папки tests можно взять из папки vendor?

В вашем мануале установка:

Код: Выделить всё

composer global require "codeception/codeception=2.0.*"
composer global require "codeception/specify=*"
composer global require "codeception/verify=*" 
а в офиц гайде я просто добавил "yiisoft/yii2-codeception": "~2.0.0"
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

jakiro писал(а):Я устанавливал codeception строго по мануалу
А папку tests стащил из шаблона yii advanced?
В yii2-app-basic и yii2-app-advanced плагин yiisoft/yii2-codeception уже подключён в require-dev секцию в composer.json. Ещё раз его прописывать не надо.
jakiro писал(а):В вашем мануале установка:

Код: Выделить всё

composer global require "codeception/codeception=2.0.*"
composer global require "codeception/specify=*"
composer global require "codeception/verify=*" 
а в офиц гайде я просто добавил "yiisoft/yii2-codeception": "~2.0.0"
Расширение yiisoft/yii2-codeception - это не сам Codeception, а просто адаптер для Yii2.

Сам Codeception устанавливается отдельно пакетом codeception/codeception через composer global require. Это написано в файле tests/README.md, из которого я взял вами приведённые строки в свой мануал.
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):В yii2-app-basic и yii2-app-advanced плагин yiisoft/yii2-codeception уже подключён в require-dev секцию в composer.json. Ещё раз его прописывать не надо.
Ну да, верно. Там уже все вклчюено, я просто убедился, что там все в порядке :)
ElisDN писал(а):Расширение yiisoft/yii2-codeception - это не сам Codeception, а просто адаптер для Yii2.
А-а-а, это что то вроде драйвера.
ElisDN писал(а):Сам Codeception устанавливается отдельно пакетом codeception/codeception через composer global require. Это написано в файле tests/README.md
Да, действительно там вообще другой мануал.

Но ведь если я глобальную установку сделаю, значит conmposer весь дистриб закатит к себе в AppData/Roaming/Composer, я думал сам codeception он как фрэймворк аля yii2 , просто подключится в папку vendor и пользуйся
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

jakiro писал(а):я думал сам codeception он как фрэймворк аля yii2 , просто подключится в папку vendor и пользуйся
Да, это такой же фреймворк, как Yii2. Аналогично его можно поставить в vendor проекта через секцию require-dev в его composer.json. Но он притянет кучу своих мегабайт в эту папку vendor, так как требует ещё и PHPUnit.

Если проектов на компьютере много, то (чтобы к каждому сайту в свой vendor не тянуть) вместо простого require удобнее его поставить один раз в глобальную папку AppData/Roaming/Composer/vendor через global require и спокойно использовать оттуда. А Composer автоматически умеет сливать локальную папку vendor с глобальной.
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):
jakiro писал(а):я думал сам codeception он как фрэймворк аля yii2 , просто подключится в папку vendor и пользуйся
Да, это такой же фреймворк, как Yii2. Аналогично его можно поставить в vendor проекта через секцию require-dev в его composer.json. Но он притянет кучу своих мегабайт в эту папку vendor, так как требует ещё и PHPUnit.

Если проектов на компьютере много, то (чтобы к каждому сайту в свой vendor не тянуть) вместо простого require удобнее его поставить один раз в глобальную папку AppData/Roaming/Composer/vendor через global require и спокойно использовать оттуда. А Composer автоматически умеет сливать локальную папку vendor с глобальной.
Проектов много, но вся работа происходит через ftp удаленно на dev сервер и все акаунты своих соседей, логично, не видят друг друга. Да и требуется сам теститнг наверное на проекте один-два, думаю будет лучше, если все в одном месте лежать будет
p.s. весит все это добро ровно 10 мб
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

Ну да. Либо к самому проекту через require-dev локально доподключить, либо только на тестовых серверах глобально установить. Смотря как удобнее. А на рабочих запускать

Код: Выделить всё

composer install --no-dev
чтобы им лишнее не ставилось.
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):Ну да. Либо к самому проекту через require-dev локально доподключить, либо только на тестовых серверах глобально установить. Смотря как удобнее. А на рабочих запускать

Код: Выделить всё

composer install --no-dev
чтобы им лишнее не ставилось.
Да, получилось.
Сделал

Код: Выделить всё

php ~/www/host.ru/vendor/codeception/codeception/codecept bootstrap
Создалась папка test, только почему то он ее завалил в vendor (/vendor/test) и еще добавил /vendor/codeception.yml
И вообще, структура всей папки test оличается от той, что представлена в avdanced template
Сгенерировалось https://yadi.sk/d/cqczyyQetDGZF
В шаблоне advanced https://yadi.sk/d/0sb0ZWQHtDGbV
Последний раз редактировалось jakiro 2016.07.12, 10:06, всего редактировалось 2 раза.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

Ну да. В basic и advanced приложениях уже есть готовая папка tests. Создавать новую командой bootstrap не нужно.
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):Ну да. В basic и advanced приложениях уже есть готовая папка tests. Создавать новую командой bootstrap не нужно.
Да, я так и понял, если создавать через /vendor/codeception/codeception/codecept то codeception создает папку test нативно, а не для yii2, соответственно мне надо использовать именно yii2 вариант т.е. представленный в шаблоне advanced, но в нем нет исполняемого файла codecept, т.е. мне генерировать не получится вот такие штуки:

Код: Выделить всё

codecept generate:cept acceptance Welcome
Иначе он скажет, что не инициализировано
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

Всё исполняемое Composer помещает в vendor/bin. В локальный или в глобальный. Оттуда и запускайте:

Код: Выделить всё

vendor/bin/codecept generate:cept acceptance Welcome
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):Всё исполняемое Composer помещает в vendor/bin. В локальный или в глобальный. Оттуда и запускайте:

Код: Выделить всё

vendor/bin/codecept generate:cept acceptance Welcome
Ааа, я не заметил ни одного описания, чтобы там все лежало.

Код: Выделить всё

 php ~/www/host.ru/vendor/bin/codecept
Теперь на php не отдает, а тупо вываливает содержимое всего файла codecept
dir=$(d=${0%[/\\]*}; cd "$d"; cd "../codeception/codeception" && pwd)

# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
# Cygwin paths start with /cygdrive/ which will break windows PHP,
# so we need to translate the dir path to windows format. However
# we could be using cygwin PHP which does not require this, so we
# test if the path to PHP starts with /cygdrive/ rather than /usr/bin
if [[ $(which php) == /cygdrive/* ]]; then
dir=$(cygpath -m "$dir");
fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/codecept" "$@"
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

Не php codecept, а просто codecept. Без php.
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):Не php codecept, а просто codecept. Без php.
А, даже так. Однако. Из vendor/codeception выполнялось все, а тут в доступе отказано :(
Придется ручками все писать
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

jakiro писал(а):в доступе отказано
К чему именно отказано?
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):
jakiro писал(а):в доступе отказано
К чему именно отказано?
Да просто на исполнение
~/www/host.ru/vendor/bin/codecept generate:cept acceptance Welcome
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):
jakiro писал(а):в доступе отказано
К чему именно отказано?
А без этой команды не запустить тест ;(
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Первый запуск тестов

Сообщение ElisDN »

jakiro писал(а):Из vendor/codeception выполнялось все
Ну тогда оттуда запускайте.
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Первый запуск тестов

Сообщение jakiro »

ElisDN писал(а):
jakiro писал(а):Из vendor/codeception выполнялось все
Ну тогда оттуда запускайте.
Я понял, из вендора выполняется, потому что я его передаю php ... а если просто команду выполнять без php, то отказано в доступе :( Разумеется все права пользователю выданы. Я не особо разбираюсь в debian делах, тем более, что атм ISP Manager
Ответить