Mocha尝试在默认情况下找到测试文件,我如何指定另一个目录,例如服务器-测试?
当前回答
正如@jeff-dickey所建议的,在项目的根目录下创建一个名为test的文件夹。在这个文件夹中,创建一个名为mocha.opts的文件。现在,我试图改进Jeff的答案,对我有效的是,我没有指定一个测试文件夹的名称,而是指定了一个模式,通过添加这一行来查找要在我的项目中运行的所有测试:
*/tests/*.js——在mocha.opts中递归
如果你想指定查找测试的确切文件夹,我做了这样的事情:
shared/tests/*.js --recursive
server/tests/graph/*.js --recursive
我希望这能帮助那些需要比其他答案更多的人
其他回答
我刚刚遇到了这个问题,并通过删除——recursive选项(我已经设置了)并使用上面建议的相同结构来解决它:
mochify “test/unit/**/*.js”
这为我运行了/test/unit/下所有目录下的所有测试,而忽略了/test/下的其他目录
不要使用-g或——grep选项,该模式操作的是it()内部的测试名称,而不是文件系统。目前的文件在这方面是误导和/或完全错误的。为了将整个命令限制在文件系统的一部分,您可以将一个模式作为最后一个参数(它不是一个标志)。
例如,这个命令会将你的报表设置为spec,但只会测试server-test目录下的js文件:
mocha --reporter spec server-test/*.js
这个命令的作用和上面一样,而且它只会运行测试用例,其中测试的it()字符串/定义以"Fnord:"开头:
mocha --reporter spec --grep "Fnord:" server-test/*.js
这里有一种方法,如果你的测试文件夹中有子文件夹。
/test
/test/server-test
/test/other-test
然后在linux中,你可以使用find命令递归地列出所有*.js文件,并将其传递给mocha:
mocha $(find test -name '*.js')
编辑:该选项已弃用:https://mochajs.org/#mochaopts
如果仍然希望在命令行上运行mocha,但希望在。/server-tests文件夹而不是。/test文件夹中运行测试,请在。/test/mocha目录下创建一个文件。在文件中只有这个选项:
server-tests
如果你想运行这个文件夹和子目录下的所有内容,把它放到test/mocha.opts中
server-tests
--recursive
摩卡。Opts是通过命令行传入的参数,因此将第一行设置为您想要更改测试的目录,也将从。/test/重定向
如果在node.js中,Mocha v6的一些新配置:
选项1:创建.mocharc。Json在项目的根目录:
{
"spec": "path/to/test/files"
}
选项2:在项目的package.json中添加mocha属性:
{
...
"mocha": {
"spec": "path/to/test/files"
}
}
这里有更多的选择。
推荐文章
- 如何直接从测试驱动程序调用自定义的Django manage.py命令?
- 如何重置笑话模拟函数调用计数之前,每次测试
- 错误:无法找到模块“webpack”
- 在node.js中使用async / await文件系统
- NodeJS -用NPM安装错误
- 如何为本地安装npm包设置自定义位置?
- 回调函数来处理管道的完成
- 在Python Django中运行单元测试时,如何禁用日志记录?
- Express函数中的“res”和“req”参数是什么?
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]
- Passport.js -错误:序列化用户到会话失败
- Node.js vs .Net性能
- 从电子应用程序中删除菜单栏
- 在子目录中测试Golang
- 如何用node.js实现一个安全的REST API