如何在单个 npm test 命令中运行 mocha 测试和节点?(CI)

Ale*_*ios 5 mocha.js node.js express circleci

我想用Circle CI集成一个git项目。

mocha用于我的测试。

我想做的事?

跑步时npm test我想要:

  • 我的节点服务器启动
  • 我要运行的测试文件

如何运行单个npm test命令来运行 node 和我的 mocha 测试,这些测试已经包装在一个index.js文件中。

我在我的package.json

  "scripts": {
    "test": "node server/app.js & mocha server/tests/index.js",
    "start": "node server/app.js",
    "postinstall": "bower install"
   }
Run Code Online (Sandbox Code Playgroud)

上面的问题

  • 我的服务器需要一些时间才能启动并且测试失败,因为它们在服务器启动之前运行

是否有一种标准方法可以使用单个命令运行服务器和测试,但我遗漏了什么?

小智 0

当运行需要某些先决条件的测试时,我所做的是使用 mochas beforeEach() 功能。

\n\n

从文档中

\n\n
\n

您还可以选择任何文件并添加 \xe2\x80\x9croot\xe2\x80\x9d 级别的挂钩。例如,在所有describe() 块之外添加beforeEach()。这将导致对 beforeEach() 的回调在任何测试用例之前运行,无论它位于哪个文件(这是因为 Mocha 有一个隐含的描述()块,称为 \xe2\x80\x9croot suite\xe2\x80\ x9d)。

\n
\n\n
beforeEach(function() {\n  console.log(\'before every test in every file\');\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

在每个代码块之前,您可以运行命令来启动服务器\n,例如使用 npm 中的 exec 库

\n\n

https://www.npmjs.com/package/exec

\n\n

这将确保您的服务器在运行测试之前运行,从而允许您简单地运行 npm test。

\n