如何在使用npm run运行端到端testing之前启动节点服务器?

我正在写一个快速站点的端到端testing,我想在package.js中添加一个“testing”命令

这个命令需要:

  1. 运行eslint
  2. 编译打字稿
  3. 启动节点服务器
  4. 对该服务器运行unit testing并显示输出。
  5. 一旦完成testing,closures服务器。

我知道如何单独执行所有这些命令,但不是一次全部执行。

我现在拥有的是:

npm run compile && npm run build && node ./dist/server.js --db=test && npm run test 

它的工作原理是:“ && npm run test ”,因为节点服务器正在运行,它不会继续到下一个命令,如果它closures,那么testing将不会运行。

任何帮助表示赞赏。

我发现可以帮助进行可靠的,可维护的端到端testing的一件事是分离关注: – testing套件假定服务器已经在运行 – Orchestrator调用单独的命令来启动testing堆栈,而不是运行testing

在CI这可能看起来像

 npm start-e2e-test-stack --port=XXXX --db=test npm test --port=XXXX --db=test npm teardown-e2e-test-stack 

根据我的经验,对任何服务器进行端到端testing都有助于validation所有环境,本地,开发,QA,分期,生产。