我们想使用codeceptJS Nightmare在Angular 7应用程序中实现一些基本的E2E测试。测试应该是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 启动命令的方法,例如npm的http-server(因为该项目已在管道中进行编译)在 codecept.json 中。
是否可以启动本地服务器,然后运行Codecept-Nightmare E2E-Tests并随后终止服务器?
我也将接受一种骇人听闻的(脚本)解决方案(例如,在package.json中),因为ng serve && codeceptjs run --steps
显然不能正常工作。