如何使用 Node.js finish/kill Mocha/Istanbul 测试周期

How to finish/kill Mocha/Istanbul test cycle with Node.js

我一直在努力获取具有 Node.js 后端 运行 本地且可测试的 Azure 移动应用程序。我终于让一切正常运行并开始编写测试。然后,我了解了 Istanbul/NYC 用于测试代码覆盖率。

一切似乎都运行良好,我能够为我的所有 *.js 文件生成代码覆盖率文件,但只有在我手动按下 Ctrl+C[=24 之后=].

这是一组 mocha 测试结束的正常方式吗?似乎 would/should 有某种方法可以结束一组测试并自动终止节点。js/express 为测试会话创建的服务器。

我是 Node.js/express/mocha/nyc 的新手。我的期望错了吗?有没有办法做我想做的事?

我不确定您要将服务器提升到哪里 (server.listen),但是在 "global" after 上停止服务器应该足够了。

我通常做的是创建一个 bootstrap.test.js 并指定在测试之前和之后应该发生什么,运行 mocha 就像这样:

mocha /test/bootstrap.test.js /test/unit/**/*.test.js /test/integration/**/*.test.js.

您需要确保 after 不在 describe 内,因此在所有测试完成后 运行s。

所以你的 bootstrap.test.js 应该看起来像这样:

/*
    imports and stuff
*/

before(function () {
    // LIFT YOUR SERVER //
});

after(function () {
    server.close();
});

编辑:

至于 Ctrl-c 的编程等价物,即 process.exit(0)