gpt4 book ai didi

node.js - 如何设置 mocha 首先运行单元测试,然后启动服务器并运行集成测试

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:09 28 4
gpt4 key购买 nike

我有单元测试和集成测试,需要使用一个“npm run mocha”命令运行。我的集成测试之前的套件已设置完毕并与 mocha.opts 一起正常工作,包括之前的步骤,如下所示:

test/beforeTests.js (sets up some important variables)
test/*.x.js (bulk of the tests, all the files ending in .x.js are run)

当包括我的集成测试时,单元测试失败,因为正在运行的服务器与一些 stub 函数发生冲突。因此,我想首先运行单元测试,然后启动服务器,运行集成测试并关闭服务器。我尝试将 mocha.opts 更改为:

test/beforeTests.js (sets up some important variables)
test/*.x.js (bulk of the tests, all the files ending in .x.js are run)
test/startServer.js (start the server)
test/integration/*.x.js (run integration tests)
test/afterTests.js (close the server)

beforeTests.js:

before(function(done) { 
// do something
});

startServer.js:

before(function() {
return runServer()
});

beforeTests 和 startServer 都可以工作,但是它们都是在测试开始时执行,而不是

beforeTest > 进行单元测试 > 启动服务器 > 进行集成测试 > 停止服务器

我无法将集成测试合并到一个文件中,也无法将单元测试合并到一个文件中,因为文件太多。有没有办法设置 mocha.opts 来做我想做的事。我环顾四周,没有什么真正适合我想做的事情。

最佳答案

我之前使用的技术之一是使用两个 npm 命令进行单元测试和集成测试,然后如果我想在单次执行中运行它们,则将它们组合在一个 npm 命令中。

"test": "npm run test:unit && npm run test:integration"
"test:unit": "mocha test/unit",
"test:integration": "mocha test/integration"

您可以启动服务器作为集成测试的一部分。

我建议对npm test使用test,而不是对npm run mocha使用mocha,因为它是 Node 项目中更标准的测试命令名称。

希望对你有帮助

关于node.js - 如何设置 mocha 首先运行单元测试,然后启动服务器并运行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812124/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com