我有一些单元测试和集成测试需要使用一个'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来做我想做的事情。我环顾四周,没有一样东西真正适合我想做的事情。
发布于 2019-02-23 02:57:05
我之前使用的一种技术是让两个npm命令用于单元测试和集成测试,如果我想在一次执行中运行它们,则将它们组合到一个npm命令中。
"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
,因为它是节点项目中更标准的测试命令名。
希望能有所帮助
https://stackoverflow.com/questions/54812124
复制相似问题