首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将mocha设置为先运行单元测试,然后启动服务器并运行集成测试

如何将mocha设置为先运行单元测试,然后启动服务器并运行集成测试
EN

Stack Overflow用户
提问于 2019-02-22 00:40:34
回答 1查看 483关注 0票数 1

我有一些单元测试和集成测试需要使用一个'npm run mocha‘命令来运行。我的集成测试之前的套件已经设置好,并且可以与mocha.opts一起正常工作,包括之前的步骤,如下所示:

代码语言:javascript
运行
复制
test/beforeTests.js (sets up some important variables)
test/*.x.js (bulk of the tests, all the files ending in .x.js are run)

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

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
before(function(done) { 
 // do something 
});

startServer.js:

代码语言:javascript
运行
复制
before(function() {
 return runServer()
});

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

beforeTest > do unit tests > start server > do integration tests > stop server

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

EN

Stack Overflow用户

回答已采纳

发布于 2019-02-23 02:57:05

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

代码语言:javascript
运行
复制
"test": "npm run test:unit && npm run test:integration"
"test:unit": "mocha test/unit",
"test:integration": "mocha test/integration"

可以将服务器作为integration测试的一部分启动。

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

希望能有所帮助

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54812124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档