Как правильно запустить мое приложение при выполнении тестов e2e? - PullRequest
1 голос
/ 07 марта 2019

У нас есть внешнее приложение, которое мы обслуживаем, и мы хотим провести на нем тестирование e2e на CI-сервере. Каков наилучший подход для этого?

Весь тест должен выполняться на CI без графического интерфейса, исполняемый одной командой.

Что бы мне в голову пришло, примерно так:

concurrently "npm run serve" "npx cypress run"

Но это, кажется, добавляет огромные и ненужные накладные расходы. Кроме того, мне нужно как-то убедиться, что тесты не будут выполнены до того, как приложение будет действительно запущено.

Ответы [ 3 ]

1 голос
/ 07 марта 2019

Как упомянуто в документации Cypress для непрерывной интеграции , вы можете использовать пакет npm под названием wait-on , чтобы дождаться вашего сервера перед запуском Cypress:

npm run serve & # run this in the background
wait-on http://localhost:8000 && npm run cypress
1 голос
/ 07 марта 2019

Как насчет автоматизации всех рабочих процессов e2e с endly E2e Test Runner.

Запуск приложения и делегирование тестирования на Cypress может выглядеть следующим образом

@test.yaml

pipeline:
  test:
    multiAction: true
    startApp:
      async: true
      action: exec:run
      commands:
        - npm run serve
    runTest:
      async: true
      action: exec:run
      commands:
        - wait-on http://localhost:8000 && npm run cypress
0 голосов
/ 07 марта 2019

Не определенное решение, а только некоторые мысли.Мы используем скрипт bash, который приводит к запуску тестов одной командой.В этом bash-скрипте мы имеем это:


    # environment variables
    export HOME=${PWD}

    yarn install
    ./node_modules/.bin/cypress install
    ./node_modules/.bin/cypress verify

    ./node_modules/.bin/cypress run ${SMOKETEST}
...