Помогите настроить тестовое окружение

Всё про тестирование в Yii 2.0
Ответить
Matvik
Сообщения: 186
Зарегистрирован: 2013.06.21, 02:32

Помогите настроить тестовое окружение

Сообщение Matvik » 2017.07.18, 16:19

Всем привет! Хочу наконец-то научиться автотестам, тем более, что чувствуется необходимость.
Для этого поставил свежий отдельный локальный проект (шаблон basic).
Использую Open Server.
Установил пакеты Codeception глобально:

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

composer global require "codeception/codeception=2.1.*"
composer global require "codeception/specify=*"
composer global require "codeception/verify=*"
Команда codecept работает.
Поправил конфиг acceptance.suite.yml.example, добавив там локальный домен.
Сделал пересборку:

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

codecept build
Тут уже полезли первые ошибки:

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

Building Actor classes for suites: functional, unit

Notice: Undefined index: actor in Z:\domains\tests.ex\vendor\codeception\base\src\Codeception\Lib\Generator\Actions.php on line 57
 -> FunctionalTesterActions.php generated successfully. 0 methods added

Notice: Undefined index: actor in Z:\domains\tests.ex\vendor\codeception\base\src\Codeception\Lib\Generator\Actor.php on line 116
</info> includes modules: Filesystem, Yii2

Notice: Undefined index: actor in Z:\domains\tests.ex\vendor\codeception\base\src\Codeception\Lib\Generator\Actions.php on line 57
 -> UnitTesterActions.php generated successfully. 0 methods added

Notice: Undefined index: actor in Z:\domains\tests.ex\vendor\codeception\base\src\Codeception\Lib\Generator\Actor.php on line 116
</info> includes modules: Asserts, Yii2
Не понятно что не так, так как устанока yii свежая.

Далее попробовал пройти приемочные тесты:

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

codecept run acceptance
Ответ:

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

Codeception PHP Testing Framework v2.1.11
Powered by PHPUnit 5.3.5 by Sebastian Bergmann and contributors.


  [RuntimeException]
  Suite 'acceptance' could not be found


run [-c|--config CONFIG] [--report] [--html [HTML]] [--xml [XML]] [--tap [TAP]] [--json [JSON]] [--colors] [--no-colors] [--silent] [--steps] [-d|--debug] [--coverage [COVERAGE]] [--coverage-html [COVERAGE-HTML]] [--coverage-xml [COVERAGE-XML]] [--coverage-text [COVERAGE-TEXT]] [--no-exit] [-g|--group GROUP] [-s|--skip SKIP] [-x|--skip-group SKIP-GROUP] [--env ENV] [-f|--fail-fast] [--no-rebuild] [--] [<suite>] [<test>]
Что теперь делать?

Matvik
Сообщения: 186
Зарегистрирован: 2013.06.21, 02:32

Re: Помогите настроить тестовое окружение

Сообщение Matvik » 2017.07.18, 16:48

Так, частично продвинулся: почему-то файл настроек приемочных тестов имеет расширение "exapmle", убрал его, приемочные тесты пошли. Но, тесты не проходятся, хотя, конечно, должны, ибо свежая установка.

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

  [ConnectionException] Can't connect to Webdriver at http://127.0.0.1:4444/wd/hub. Please make sure that Selenium Server or PhantomJS is running.
И так в каждом тесте.
Я думал, можно не устанавливать Селениум для начала, или я не прав?

Matvik
Сообщения: 186
Зарегистрирован: 2013.06.21, 02:32

Re: Помогите настроить тестовое окружение

Сообщение Matvik » 2017.07.18, 16:58

Нагуглил костыль:
You can change in modul WebDriver to PhpBrowser
Применил. Теперь другая ошибка:

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

1) AboutCest: Ensure that about works                   
 Test  utCest.php:ensureThatAboutWorks                  
                                                        
  [Error] Class name must be a valid object or a string 
                                                        
Ну и другие такие же. Это вообще непонятно.

Аватара пользователя
ElisDN
Сообщения: 4942
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Помогите настроить тестовое окружение

Сообщение ElisDN » 2017.07.18, 22:42

А теперь снесите прошлогодние глобальные пакеты и сделайте всё по пунктам с https://github.com/yiisoft/yii2-app-basic

Matvik
Сообщения: 186
Зарегистрирован: 2013.06.21, 02:32

Re: Помогите настроить тестовое окружение

Сообщение Matvik » 2017.07.18, 23:05

Блин, офигеть. Делал так, как тут https://yiiframework.com.ua/ru/doc/guid ... ent-setup/написно, не думал, что может быть такая лажа. Спасибо, попробую.

Аватара пользователя
samdark
Администратор
Сообщения: 8760
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Помогите настроить тестовое окружение

Сообщение samdark » 2017.07.19, 00:47

Я переписал доку к следующему релизу...

Matvik
Сообщения: 186
Зарегистрирован: 2013.06.21, 02:32

Re: Помогите настроить тестовое окружение

Сообщение Matvik » 2017.07.19, 02:20

Так, юнит- и функциональные тесты запустились, если кому интересно - нужно еще добавить в файл конфига тестов секцию

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

'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
    ],
Она там почему-то отсутствует, соответственно, выпадает ошибка при тестировании.
ПС. Хотел накатать issue на github, но он перестал работать) Думаю, логично будет добавить данную секцию в конфиг тестов в шаблоне по-умолчанию.

Matvik
Сообщения: 186
Зарегистрирован: 2013.06.21, 02:32

Re: Помогите настроить тестовое окружение

Сообщение Matvik » 2017.07.19, 03:28

Спасибо, все работает. Только непонятно, зачем в руководстве пункт

6. Start web server:

tests/bin/yii serve

Может запутать, будто бы будет работать только со встроенным веб-сервером.

Аватара пользователя
ElisDN
Сообщения: 4942
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Помогите настроить тестовое окружение

Сообщение ElisDN » 2017.07.19, 08:03

Пункт про запуск встроенного web-сервера для приёмочных тестов.

Matvik
Сообщения: 186
Зарегистрирован: 2013.06.21, 02:32

Re: Помогите настроить тестовое окружение

Сообщение Matvik » 2017.07.19, 12:15

Понимаю, но мне, по крайней мере, сначала подумалось, что этот пункт обязателен, хотя на самом деле прекрасно работает с обычным локальным сервером.

Tommi
Сообщения: 57
Зарегистрирован: 2013.08.01, 13:44

Re: Помогите настроить тестовое окружение

Сообщение Tommi » 2017.07.31, 14:55

samdark писал(а):
2017.07.19, 00:47
Я переписал доку к следующему релизу...
А скажите вот эта официальная дока про фикстуры (http://www.yiiframework.com/doc-2.0/gui ... tures.html) - это что все устаревшая информация? Вон в ней:
If you are using Codeception to test your code, you should consider using the yii2-codeception extension which has built-in support for loading and accessing fixtures.
Где тогда этому учиться, не могу найти понятные доки, на страничке yii на сайте codeception только про $this->tester->haveFixtures сказано.

Аватара пользователя
samdark
Администратор
Сообщения: 8760
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Помогите настроить тестовое окружение

Сообщение samdark » 2017.07.31, 18:58

Это релизная дока. 2.0.12. Переписал я то, что будет релизнуто в 2.0.13. Пока смотрите на GitHub: https://github.com/yiisoft/yii2/blob/ma ... verview.md

Tommi
Сообщения: 57
Зарегистрирован: 2013.08.01, 13:44

Re: Помогите настроить тестовое окружение

Сообщение Tommi » 2017.08.07, 09:49

Спасибо за ту доку по фикстурам.
У вас там наверное опечатка, во всяком случае у меня с кавычками не работает:

yii fixture User --namespace='alias\my\custom\namespace'

Подебажил, убрал кавычки, заработало.

Еще я не совсем понял:
- в каких сценариях работы над проектом может пригодиться вот эта работа по загрузке фикстур вручную из командной строки?
- а dataFile для фикстуры нельзя также указать?

Аватара пользователя
samdark
Администратор
Сообщения: 8760
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Помогите настроить тестовое окружение

Сообщение samdark » 2017.08.07, 16:57

Вручную может быть нужно:

1. Чтобы проверить, что фикстуры вообще накатываются нормально.
2. Чтобы набить базу при развёртывании проекта на dev-машине.

data-файлы указать можно.

Ответить