Chrome Headless не работает на CI при запуске build-agent как службы

У меня есть проект angular (5), в котором выполняются модульные тесты jasmine с использованием karma и chrome headless. Это нормально работает локально, но не работает на нашем сервере VSTS CI (настраиваемая виртуальная машина Windows 10 с установленным узлом и хромом [69]).

Агент сборки, установленный на виртуальной машине VSTS, работает как служба Windows, которая не проходит тесты chrome headless с таймаутом:

2018-10-03T12:28:51.8716712Z [32m03 10 2018 12:28:04.336:INFO [karma]: [39mKarma v1.7.1 server started at http://0.0.0.0:9876/
2018-10-03T12:28:51.8717001Z [32m03 10 2018 12:28:04.336:INFO [launcher]: [39mLaunching browser ChromeHeadless with unlimited concurrency
2018-10-03T12:28:51.8717325Z [32m03 10 2018 12:28:04.351:INFO [launcher]: [39mStarting browser Chrome
2018-10-03T12:28:51.8717666Z [32m03 10 2018 12:28:40.937:INFO [HeadlessChrome 69.0.3497 (Windows 10.0.0)]: [39mConnected on socket vcUeG8L1qWsAFV7LAAAA with id 91653372
2018-10-03T12:28:51.8717989Z [33m03 10 2018 12:28:50.945:WARN [HeadlessChrome 69.0.3497 (Windows 10.0.0)]: [39mDisconnected (1 times), because no message in 10000 ms.
2018-10-03T12:28:51.8718289Z [31mHeadlessChrome 69.0.3497 (Windows 10.0.0) ERROR[39m
2018-10-03T12:28:51.8718600Z   Disconnected, because no message in 10000 ms.
2018-10-03T12:28:51.8718863Z 
2018-10-03T12:28:51.8719156Z HeadlessChrome 69.0.3497 (Windows 10.0.0) ERROR
2018-10-03T12:28:51.8719433Z   Disconnected, because no message in 10000 ms.
2018-10-03T12:28:51.8719704Z HeadlessChrome 69.0.3497 (Windows 10.0.0) ERROR
2018-10-03T12:28:51.8720051Z   Disconnected, because no message in 10000 ms.

Если я изменю build-agent на работу в интерактивном режиме, тесты снова начнут работать. Но это не идеальная ситуация, так как в интерактивном режиме нам нужно вручную перезапускать build-agent при перезагрузке сервера.

Тесты проводятся с использованием:

ng test --code-coverage --browsers ChromeHeadless --single-run

В karma.conf.js включены настраиваемые флаги запуска:

--headless
--disable-gpu
--remote-debugging-port=9222

person Mathijs    schedule 04.10.2018    source источник


Ответы (1)


Для выполнения тестов пользовательского интерфейса необходимо запустить агент сборки в интерактивном режиме. Подробнее см. По этой ссылке: Интерактивный по сравнению с сервисом.

person Eddie Chen - MSFT    schedule 10.10.2018