Я рекомендую вам обратиться к следующим темам, где вы можете найти информацию о том, как заставить его работать:
Вот статья, в которой описывается, как интегрировать TestCafe с TeamCity . Также ознакомьтесь со следующей статьей: Используйте TestCafe Docker Изображение .
Не стесняйтесь обращаться к нам, если вам нужна помощь в объединении этих инструментов.
ОБНОВЛЕНО:
TeamCity идет вместе с расширением Docker Wrapper для этапа сборки из командной строки. Это простой способ запустить собственный сценарий внутри контейнера docker.
Однако необходимо учитывать следующие особенности:
- Образ TestCafe Docker поставляется со специальным скриптом , который подготавливает среду контейнера, запуская такие службы, как Xvfb и DBus. Он находится в
/opt/testcafe/bin/testcafe-docker.sh
. Оболочка TeamCity переопределяет точку входа изображений docker и предотвращает выполнение этого сценария. Это означает, что /opt/testcafe/bin/testcafe-docker.sh
следует использовать вместо testcafe
для запуска вашего теста с Docker и TeamCity:
/opt/testcafe/docker/testcafe-docker.sh chromium test/e2e/**/* -r teamcity
- Лучше использовать безголовый режим при тестировании в контейнерах Docker, поскольку этот режим специально разработан для таких сред.
- Если по какой-то причине вы не используете режим без головы в Chrome, вы можете столкнуться со следующей ошибкой: ОШИБКА: Не удалось установить sh одно или несколько указанных соединений браузера. Это может быть вызвано проблемами сети или сбоями удаленного устройства. Вероятно, это вызвано следующей ошибкой Chrome: TMPDIR too long . Чтобы решить эту проблему, вам необходимо вручную установить переменную среды перед запуском TestCafe:
export TMPDIR=/tmp
Настроенный этап сборки может выглядеть так:
![](https://i.stack.imgur.com/VxC2Q.png)
This configuration implies that you are using TestCafe with TeamCity TestCafe reporter устанавливается как локальные пакеты. Убедитесь, что каталог node_modules с TestCafe и надстройками является подкаталогом каталога root тестового проекта. TeamCity Docker Wrapper смонтирует рабочий каталог внутри контейнера.