运行 超时的 Mocha 测试永远不会完成
Running Mocha tests with timeout never finishes
我在使用 Mocha 对我的 node.js
项目执行测试脚本时遇到困难。
问题是测试脚本永远不会完成,除非我手动完成它 (ctrl+c)。这个问题是在我将 --timeout
参数添加到 mocha.opts
之后开始的。添加超时是因为我使用 mock-mongoose
库,其中建议的超时是 120000 ms
。
这是我的 mocha.opts
:
--require ts-node/register
--watch-extensions ts
--timeout 120000
tests/**/*.ts
代码示例如下:
it("POST '/route' should return OK", async () => {
const result = await routeController.createSomething(data)
expect(result.statusCode).is.equal(HttpStatus.OK)
})
我也尝试调用 done()
函数,但仍然没有帮助。
我的项目结构:
node_modules
src
--- source code...
tests
--- tests source...
package.json
package-lock.json
....
测试脚本:mocha --opts ./tests/mocha.opts
提前致谢!
您可以尝试使用 --exit
参数,这将允许 mocha 自行终止。
但这里的问题是您错过了清理代码中的某些内容。
阅读此处 https://boneskull.com/mocha-v4-nears-release/#mochawontforceexit
您也可以尝试 https://github.com/mafintosh/why-is-node-running 查明您的代码未终止的原因。
我在使用 Mocha 对我的 node.js
项目执行测试脚本时遇到困难。
问题是测试脚本永远不会完成,除非我手动完成它 (ctrl+c)。这个问题是在我将 --timeout
参数添加到 mocha.opts
之后开始的。添加超时是因为我使用 mock-mongoose
库,其中建议的超时是 120000 ms
。
这是我的 mocha.opts
:
--require ts-node/register
--watch-extensions ts
--timeout 120000
tests/**/*.ts
代码示例如下:
it("POST '/route' should return OK", async () => {
const result = await routeController.createSomething(data)
expect(result.statusCode).is.equal(HttpStatus.OK)
})
我也尝试调用 done()
函数,但仍然没有帮助。
我的项目结构:
node_modules
src
--- source code...
tests
--- tests source...
package.json
package-lock.json
....
测试脚本:mocha --opts ./tests/mocha.opts
提前致谢!
您可以尝试使用 --exit
参数,这将允许 mocha 自行终止。
但这里的问题是您错过了清理代码中的某些内容。
阅读此处 https://boneskull.com/mocha-v4-nears-release/#mochawontforceexit
您也可以尝试 https://github.com/mafintosh/why-is-node-running 查明您的代码未终止的原因。