Я запускаю тесты с testcafe & cucumberjs, используя docker, который построен поверх nodejs.Тестовый запуск инициируется через скрипты npm.Ниже подробно описан рабочий процесс ...
1) Предварительно собранный образ докера Git pull
2) При желании можно установить параметр config в файле package.json, например ... npm config set packageJson:task-profile auto-regression-chrome
3) Выполнить скрипт бегуна, т.е. npm run e2e-test
мой сценарий оболочки может обслуживать только 3, но я бы развивался так, чтобы он обслуживал 2) и 3).Мой сценарий оболочки в настоящее время выглядит следующим образом:
#!/bin/sh
set -e
if [ "$1" == 'npm' ] && [ "$2" == 'run' ]; then
shift 2
XVFB_SCREEN_WIDTH=${SCREEN_WIDTH-1280}
XVFB_SCREEN_HEIGHT=${SCREEN_HEIGHT-720}
dbus-daemon --session --fork
Xvfb :1 -screen 0 "${XVFB_SCREEN_WIDTH}x${XVFB_SCREEN_HEIGHT}x24" >/dev/null 2>&1 &
export DISPLAY=:1.0
fluxbox >/dev/null 2>&1 &
exec npm run "$@"
fi
# otherwise, just run whatever command was passed on
exec "$@"
Любые идеи о том, как развивать сценарий, чтобы удовлетворить 2) и 3).Обычно я клонирую образ и выполняю команду runner, но было бы неплохо иметь сценарий оболочки, который позволяет мне сначала установить некоторые настройки npm и выполнить запуск npm.
Подробнее о намерении:
Глядя на https://github.com/bhreinb/SYSTAC#running-tests-on-docker
Я делаю следующее при запуске тестов в Docker
1) Создаю образ докера
docker build --no-cache -t bhreinb/systac .
2)Запустите тесты в Docker и выбросьте образ ...
docker run --rm -it -v $PWD/e2e/:/opt/systac/e2e bhreinb/systac npm run e2e-test
Ограничение - конфигурация должна быть настроена в системе контроля версий перед запуском тестов.Я хочу иметь возможность динамически обновлять конфигурацию, запускать тесты и выбрасывать образ с помощью одной команды, т.е.
docker run --rm -it -v $PWD/e2e/:/opt/SYSTAC/e2e -v $PWD/reports/:/opt/SYSTAC/reports/ bhreinb/SYSTAC npm config set packageJson:task-profile auto-regression-chrome && npm run e2e-test
надеюсь, что имеет смысл?