0

我们想使用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.json 中配置codecept启动命令的方法,例如 npm 的http-server(因为项目已经在管道中的这一点编译)。

有没有办法启动本地服务器,然后运行 ​​Codecept-Nightmare E2E-Tes​​ts 并随后终止服务器?

我也会接受一个hacky(脚本)解决方案(例如在package.json中),因为ng serve && codeceptjs run --steps显然不起作用

4

0 回答 0