我有一些单元测试和集成测试,需要使用一个'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)
当包括我的集成测试时,单元测试失败,因为正在运行的服务器与某些存根函数冲突。因此,我想先运行单元测试,然后启动服务器,运行集成测试并关闭服务器。我尝试通过将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 > do unit tests > start server > do integration tests > stop server
我无法将集成测试合并到一个文件中,也不能将单元测试合并到一个文件中。有没有办法设置mocha.opts做我想做的事。我环顾四周,没有什么比我想做的要好。
答案 0 :(得分:0)
我之前使用的一种技术是使用两个npm命令进行单元和集成测试,然后如果我想一次执行它们,则将它们组合到一个npm命令中。
"test": "npm run test:unit && npm run test:integration"
"test:unit": "mocha test/unit",
"test:integration": "mocha test/integration"
您可以在integration
测试中启动服务器。
我建议对test
使用npm test
,而不对mocha
使用npm run mocha
,因为它是节点项目中更标准的测试命令名称。
希望有帮助