Выполнение тестов кармы и транспортира не работает в Google Cloud Build - PullRequest
0 голосов
/ 27 марта 2020

Я использую Bazel для запуска Angular e2e и модульных тестов. Выполнение protractor_web_test_suite и karma_web_test_suite тестов на моей локальной машине работает полностью нормально.

test run perfectly fine locally

Но выполнение тестов Google Cloud Build не работает.

Минимальное воспроизведение

  1. Начните с этого angular примера приложения
  2. Добавить 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'

Но ошибки остаются .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...