Код: Выделить всё
Error: Cannot find the browser. "chrome:headless --no-sandbox --disable-dev-shm-usage --headless=new --enable-pinch --window-size=1920,1080 --force-device-scale-factor=1 --window-position=0,0 --noerrdialogs --disable-infobars --no-default-browser-check --kiosk --disable-session-crashed-bubble --disable-features=TranslateUI --no-first-run --simulate-critical-update --enable-logging=stderr --v=0 --disable-pinch --disable-gpu --disable-component-update --allow-insecure-localhost --ignore-certificate-errors --allow-running-insecure-content --test-type" is neither a known browser alias, nor a path to an executable file.
< /code>
У меня есть настройка dockerfile: < /p>
FROM node:22-bullseye
# Install required packages
RUN apt-get update && apt-get install -y \
wget \
curl \
gnupg \
ca-certificates \
awscli
# Download and install Chrome via .deb
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& apt-get install -y ./google-chrome-stable_current_amd64.deb || apt-get -f install -y \
&& rm google-chrome-stable_current_amd64.deb
# Symlink for TestCafe to find Chrome
RUN ln -s /usr/bin/google-chrome-stable /usr/bin/google-chrome
WORKDIR /app
COPY . .
RUN yarn config set strict-ssl false
RUN yarn install
CMD ["yarn", "run", "ci:test"]
#!/bin/bash
Код: Выделить всё
# Load .env variables
set -a
source .env
set +a
# Set defaults if not already defined
SNAPSHOT=${SNAPSHOT:-actual}
TESTS=${TESTS:-tests/test/*.test.ts}
# Run Docker container with env vars
docker run -it --rm \
-v "$PWD":/app \
-w /app \
-e ENV="$ENV" \
-e STATE="$STATE" \
-e NAMESPACE="$NAMESPACE" \
-e PRODUCT="$PRODUCT" \
-e TESTS="$TESTS" \
-e SNAPSHOT="$SNAPSHOT" \
-e BROWSER="chrome" \
-e HEADLESS="true" \
visual-test-runner
< /code>
Я запускаю эту команду: < /p>
yarn run:snapshot
< /code>
, который вызывает сценарий Bash: < /p>
"run:snapshot": "bash shared/scripts/run-snapshot.sh",
< /code>
Наконец -то мой тестовый бегун, который, как я знаю, работает для всех других тестовых наборов (не используя Docker и работает на Chrome) < /p>
if (process.env.HEADLESS === 'true') {
localBrowserConfig =
'chrome:headless \
--no-sandbox \
--disable-dev-shm-usage \
--headless=new \
--enable-pinch \
--window-size=1920,1080 \
--force-device-scale-factor=1 \
--window-position=0,0 \
--noerrdialogs \
--disable-infobars \
--no-default-browser-check \
--kiosk \
--disable-session-crashed-bubble \
--disable-features=TranslateUI \
--no-first-run \
--simulate-critical-update \
--enable-logging=stderr \
--v=0 \
--disable-pinch \
--disable-gpu \
--disable-component-update \
--allow-insecure-localhost \
--ignore-certificate-errors \
--allow-running-insecure-content \
--test-type';
} else {
localBrowserConfig =
'chrome \
--window-size=1920,1080 \
--force-device-scale-factor=1 \
--allow-insecure-localhost \
--allow-running-insecure-content \
--ignore-certificate-errors \
--test-type';
}
----
.browsers(
!process.env.BROWSER
? 'chrome:headless \
--no-sandbox \
--disable-dev-shm-usage \
--headless=new \
--enable-pinch \
--window-size=1920,1080 \
--window-position=0,0 \
--noerrdialogs \
--disable-infobars \
--no-default-browser-check \
--kiosk \
--disable-session-crashed-bubble \
--disable-features=TranslateUI \
--no-first-run \
--simulate-critical-update \
--enable-logging=stderr \
--v=0 \
--disable-pinch \
--disable-gpu \
--disable-component-update \
--allow-insecure-localhost \
--ignore-certificate-errors \
--allow-running-insecure-content \
--test-type'
: localBrowserConfig
)
Подробнее здесь: https://stackoverflow.com/questions/797 ... r-containe
Мобильная версия