Я использую Bazel для запуска Angular e2e и модульных тестов. Выполнение protractor_web_test_suite и karma_web_test_suite тестов на моей локальной машине работает полностью нормально.
Но выполнение тестов Google Cloud Build не работает.
Минимальное воспроизведение
- Начните с этого angular примера приложения
- Добавить
cloudbuild.yaml
файл:
steps:
- id: "e2e tests"
name: gcr.io/cloud-builders/bazel
args: ["test", "//e2e:all"]
- id: "unit tests"
name: gcr.io/cloud-builders/bazel
args: ["test", "//src/..."]
options:
machineType: "N1_HIGHCPU_8"
Запустите его в Google Cloud Build
Ошибки
e2e Ошибки тестирования
Следующие ошибки являются результатом protractor_web_test_suite
целей
E/launcher - WebDriverError: unknown error: Chrome failed to start: exited abnormally
...
(unknown error: DevToolsActivePort file doesn't exist)
Полный журнал можно найти здесь .
Ошибки модульного теста
Следующие ошибки являются результатом karma_web_test_suite
target
Extracting ../org_mozilla_geckodriver/file/geckodriver-v0.24.0-linux64.tar.gz failed (Exit 2) linux-sandbox failed: error executing command
...
Полный журнал можно найти здесь .
Идеи
К настоящему времени я относительно уверен, что проблемы возникают из-за Chrom без головы и Firefox не включены в изображение gcr.io/cloud-builders/bazel
. Именно поэтому они установили эти пакеты в своем конвейере CI.
Таким образом, я попытался сделать то же самое с этой конфигурацией:
steps:
- id: 'unit tests'
entrypoint: 'bash'
name: gcr.io/cloud-builders/bazel
args:
- '-c'
- |
apt-get update \
&& apt-get -y install libgtk-3-0 libasound2 libnss3 libxss1 \
&& apt-get -y install libdbus-glib-1-2 \
&& bazel test //...
timeout: 1000s
options:
machineType: 'N1_HIGHCPU_8'
Но ошибки остаются .