Ускорение API-тестов

Всё про тестирование в Yii 2.0
Ответить
nds
Сообщения: 26
Зарегистрирован: 2017.09.05, 07:57

Ускорение API-тестов

Сообщение nds »

На данный момент на проекте API тестирование проходит стандартным путем: три docker контейнера nginx, php, postgres. Старт тестов происходит при каждом МР запросе и нужно подождать порядка 7 минут для полного прогона(а это 650 тестов).
Возникла идея исключить nginx из этой цепочки, а codeception, каким-то образом, сразу "натравливать" на некое фейковое web Yii2 приложение через Controller::runAction(...).
Возможно ли такое реализовать? Кто-нибудь может проворачивал такое. Если это реализуемо, то какие грабли обойти?

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

Re: Ускорение API-тестов

Сообщение ElisDN »

В Codeception использовать REST с модулем Yii2 вместо PhpBrowser:

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

modules:
    enabled:
        - REST:
            url: /api
            depends: Yii2
    config:
        - Yii2
Последний раз редактировалось ElisDN 2020.02.22, 00:16, всего редактировалось 1 раз.
nds
Сообщения: 26
Зарегистрирован: 2017.09.05, 07:57

Re: Ускорение API-тестов

Сообщение nds »

ElisDN писал(а): 2020.02.21, 13:24 В Codeception использовать REST с модулем Yii2 вместо PhpBrowser:

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

modules:
    enabled:
        - REST:
            url: /api
            depends: Yii2
        - \ApiBundle\Helper\Api
    config:
        - Yii2
Дмитрий, спасибо! это то что нужно
nds
Сообщения: 26
Зарегистрирован: 2017.09.05, 07:57

Re: Ускорение API-тестов

Сообщение nds »

ElisDN писал(а): 2020.02.21, 13:24 В Codeception использовать REST с модулем Yii2 вместо PhpBrowser:

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

modules:
    enabled:
        - REST:
            url: /api
            depends: Yii2
    config:
        - Yii2
Дмитрий, перестала работать проверка заголовков ApiTester::seeHttpHeader('Content-Type', ...).
В ApiTester::grabHttpHeader всегда NULL, при этом ApiTester::grabResponse() отрабатывает корректно.
Ответить