Мы хотим реализовать некоторые базовые тесты 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
явно не работает.