Как запустить тестирование браузера в докере?
У меня есть приложение node.js, которое запускает тесты mocha, используя шимпанзе, и работает нормально при работе внутри моей локальной ОС. Он использует Google Chrome для тестирования пользовательского интерфейса.
В настоящее время я докернизирую это приложение... Однако я не уверен в том, что мне нужно для запуска теста пользовательского интерфейса с точки зрения браузера.
Я использовал некоторые команды из https://github.com/workflow/docker-chimp/blob/master/Dockerfile, чтобы установить безголовый браузер Chrome.
Мои тесты проваливаются на крючке "прежде всего"... Но я понятия не имею, где это и почему это происходит. Тесты в хост-ОС выполняются нормально.
> pluto_integ_test@1.0.0 test /PlutoD2D/itest
> chimp --mocha
[chimp] Running...
1) "before all" hook
0 passing (1m)
1 failing
1) "before all" hook:
Error: timeout of 60000ms exceeded. Ensure the done() callback is being called in this test
Mocha failed
npm ERR! Test failed. See above for more details.
Как я могу узнать, в чем проблема?
1 ответ
Попробуйте использовать пакет mocha-headless-chrome.
npm i mocha-headless-chrome
mocha-headless-chrome -f test-page.html
Также вам понадобятся некоторые библиотеки для запуска безголового хрома в Docker-контейнере:
apt-get install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
Смотрите детали.