Запустите локальный сервер на Codecept-Nightmare в Angular Project

Мы хотим реализовать некоторые базовые тесты E2E в нашем приложении Angular 7 с https://codecept.io/nightmare. Испытания должны быть частью конвейера CI. Я следовал за документами и установил basicTest.e2e.js:

Feature('Basic');

Scenario('test if Users header appears', (I) => {
    I.amOnPage('http://localhost:4200/users');
    I.see('Users', 'h1');
});

а также codecept.json:

{
  "tests": "./e2e/*.e2e.js",
  "timeout": 10000,
  "output": "./_tmptest",
  "helpers": {
    "Nightmare": {
      "url": "http://localhost",
      "show": false,
      "restart": false
    }
  }
}

и выполнить его с codeceptjs run --steps, Однако это приводит к ошибке:

CodeceptJS v1.3.2

Basic --
  test if Users header appears
   I am on page "http://localhost:4200/users"
  ✖ FAILED in 465ms


-- FAILURES:

  1) Basic
       test if Users header appears:
     navigation error

  Scenario Steps:

  - I.amOnPage("http://localhost:4200/users") at Object.obj.(anonymous function).obj.(anonymous function) [as amOnPage] (node_modules/codeceptjs-nightmare/node_modules/codeceptjs/lib/actor.js:28:26)



  Run with --verbose flag to see NodeJS stacktrace


  FAIL  | 0 passed, 1 failed   // 1s

Выполнение команды с ng serve работает в другой консоли работает:

CodeceptJS v1.3.2

Basic --
  test if Users header appears
   I am on page "http://localhost:4200/users"
   I see "Users", "h1"
  ✓ OK in 2173ms

поэтому очевидно, что локальный сервер не запускался до запуска тестов. Я не смог найти способ настроить команду запуска codecept, например http-сервер npm (так как проект уже скомпилирован в этот момент в конвейере) в codecept.json.

Есть ли способ запустить локальный сервер, затем запустить Codecept-Nightmare E2E-Tests и впоследствии завершить работу сервера?

Я бы также принял хакерское (скриптовое) решение (например, в package.json) как ng serve && codeceptjs run --steps очевидно не работает.

0 ответов

Другие вопросы по тегам