Mocha尝试在默认情况下找到测试文件,我如何指定另一个目录,例如服务器-测试?
当前回答
正如@jeff-dickey所建议的,在项目的根目录下创建一个名为test的文件夹。在这个文件夹中,创建一个名为mocha.opts的文件。现在,我试图改进Jeff的答案,对我有效的是,我没有指定一个测试文件夹的名称,而是指定了一个模式,通过添加这一行来查找要在我的项目中运行的所有测试:
*/tests/*.js——在mocha.opts中递归
如果你想指定查找测试的确切文件夹,我做了这样的事情:
shared/tests/*.js --recursive
server/tests/graph/*.js --recursive
我希望这能帮助那些需要比其他答案更多的人
其他回答
如果你使用的是nodejs,在你的包中。脚本下的Json
对于全局(-g)安装:"test": "mocha server-test"或"test": "mocha server-test/**/*.js"用于子文档 项目安装:“test”:“node_modules/mocha/bin/mocha server-test”或“test”:“node_modules/mocha/bin/mocha server-test/**/*.js”
然后像npm测试一样正常运行你的测试
用这个:
mocha server-test
或者如果你有子目录,使用这个:
mocha "server-test/**/*.js"
注意双引号的使用。如果省略它们,则可能无法在子目录中运行测试。
运行test_directory下的所有文件,包括与test.js匹配的子目录
find ./parent_test_directory -name '*test.js' | xargs mocha -R spec
或者使用——递归开关
mocha --recursive test_directory/
这样做的好方法是在包中添加一个“test”npm脚本。Json,使用正确的参数调用mocha。这边您的包裹。Json还描述了测试结构。它还避免了其他答案中的所有这些跨平台问题(双引号vs单引号,“查找”等)。
让mocha运行"test"目录下的所有js文件:
"scripts": {
"start": "node ./bin/www", -- not required for tests, just here for context
"test": "mocha test/**/*.js"
},
然后,要只运行烟雾测试,请调用:
npm test
你可以通过这种方式标准化所有项目中所有测试的运行,这样当一个新的开发人员开始你的项目或其他项目时,他们知道“npm test”将运行测试。这在历史上有很好的先例(例如,Maven也是大多数老式的“make”项目)。当所有项目都有相同的测试命令时,它肯定有助于CI。
类似地,您可能有一个快速“烟雾”测试的子集,您可能希望mocha运行:
"scripts": {
"test": "mocha test/**/*.js"
"smoketest": "mocha smoketest/**/*.js"
},
然后,要只运行烟雾测试,请调用:
npm smoketest
另一种常见的模式是将测试放在与它们测试的源文件相同的目录中,但是将测试文件称为*.spec.js。例如:src/foo/foo.js通过src/foo/foo.spec.js进行测试。
按照约定运行所有命名为*.spec.js的测试:
"scripts": {
"test": "mocha **/*.spec.js"
},
然后运行所有测试调用:
npm test
看到这里的模式了吗?好。:)一致性打败了村。
如果在node.js中,Mocha v6的一些新配置:
选项1:创建.mocharc。Json在项目的根目录:
{
"spec": "path/to/test/files"
}
选项2:在项目的package.json中添加mocha属性:
{
...
"mocha": {
"spec": "path/to/test/files"
}
}
这里有更多的选择。
推荐文章
- 在Visual Studio 2017中未发现单元测试
- 检查已安装的angular-cli版本?
- 如何将Blob转换为JavaScript文件
- 如何用Express/Node以编程方式发送404响应?
- 什么是单元测试?
- 如何安装包从github回购在纱线
- 什么时候.then(success, fail)被认为是承诺的反模式?
- 自动HTTPS连接/重定向使用node.js/express
- 在nodejs http中body在哪里。得到回应?
- 如何在猫鼬排序?
- Java:如何测试调用System.exit()的方法?
- Nodemon错误:“已达到文件监视器数量的系统限制”
- 如何在ASP中使用ILogger进行单元测试。网络核心
- 如何使webpack开发服务器运行在端口80和0.0.0.0使其公开访问?
- 如何在node.js模块中访问和测试内部(非导出)函数?