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

时间:2017-10-27 12:25:44

标签: node.js unit-testing express command-line mocha

我正在为快速网站编写端到端测试,我想添加一个"测试"命令到package.js

此命令需要:

  1. run eslint
  2. 编译打字稿
  3. 启动节点服务器
  4. 针对该服务器运行单元测试并显示输出。
  5. 完成测试后,关闭服务器。
  6. 我知道如何单独执行所有这些命令,但不能同时执行所有命令。

    我现在拥有的是:

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

    它的工作原理如下:" && npm run test " 由于节点服务器正在运行,它不会继续执行下一个命令,如果它关闭,那么测试就不会运行。

    感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我发现有助于可靠,可维护的端到端测试的一件事是分开关注: - 测试套件假定服务器已在运行 - Orchestrator调用单独的命令来调出测试堆栈而不是运行测试

在CI中,这看起来像

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

根据我的经验,对任何服务器进行端到端测试都有助于他们验证所有环境,本地,开发,qa,分段,生产。