如何使用 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)
我一直在努力获取具有 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)