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测试一样正常运行你的测试
运行test_directory下的所有文件,包括与test.js匹配的子目录
find ./parent_test_directory -name '*test.js' | xargs mocha -R spec
或者使用——递归开关
mocha --recursive test_directory/
我刚刚遇到了这个问题,并通过删除——recursive选项(我已经设置了)并使用上面建议的相同结构来解决它:
mochify “test/unit/**/*.js”
这为我运行了/test/unit/下所有目录下的所有测试,而忽略了/test/下的其他目录
正如@superjos在评论中提到的那样
摩卡:递归"some_dir"
不要使用-g或——grep选项,该模式操作的是it()内部的测试名称,而不是文件系统。目前的文件在这方面是误导和/或完全错误的。为了将整个命令限制在文件系统的一部分,您可以将一个模式作为最后一个参数(它不是一个标志)。
例如,这个命令会将你的报表设置为spec,但只会测试server-test目录下的js文件:
mocha --reporter spec server-test/*.js
这个命令的作用和上面一样,而且它只会运行测试用例,其中测试的it()字符串/定义以"Fnord:"开头:
mocha --reporter spec --grep "Fnord:" server-test/*.js
推荐文章
- 如何使用Jest测试对象键和值是否相等?
- 为什么在节点REPL中没有定义__dirname ?
- 在Node.js中克隆对象
- Node.js中的process.env.PORT是什么?
- js的Mongoose.js字符串到ObjectId函数
- ELIFECYCLE Node.js错误是什么意思?
- 如何完全卸载Ubuntu中的nodejs, npm和node
- 在猫鼬模式中添加created_at和updated_at字段
- 我如何把变量javascript字符串?
- 如何强制tsc忽略node_modules文件夹?
- NPM全局安装“无法找到模块”
- MongoDB和Mongoose的区别
- 如何使用Express.js指定HTTP错误码?
- 通过npm安装Twitter Bootstrap的目的?
- 将文件中的字符串替换为nodejs