Запустите локальный сервер на Codecept-Nightmare в Angular Project - PullRequest
0 голосов
/ 15 февраля 2019

Мы хотим реализовать некоторые базовые тесты E2E в нашем приложении Angular 7 с codeceptJS 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-server npm (поскольку проект уже скомпилирован в этот момент в конвейере) в codecept.json .

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

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

...