Mocha尝试在默认情况下找到测试文件,我如何指定另一个目录,例如服务器-测试?
当前回答
编辑:该选项已弃用:https://mochajs.org/#mochaopts
如果仍然希望在命令行上运行mocha,但希望在。/server-tests文件夹而不是。/test文件夹中运行测试,请在。/test/mocha目录下创建一个文件。在文件中只有这个选项:
server-tests
如果你想运行这个文件夹和子目录下的所有内容,把它放到test/mocha.opts中
server-tests
--recursive
摩卡。Opts是通过命令行传入的参数,因此将第一行设置为您想要更改测试的目录,也将从。/test/重定向
其他回答
正如@jeff-dickey所建议的,在项目的根目录下创建一个名为test的文件夹。在这个文件夹中,创建一个名为mocha.opts的文件。现在,我试图改进Jeff的答案,对我有效的是,我没有指定一个测试文件夹的名称,而是指定了一个模式,通过添加这一行来查找要在我的项目中运行的所有测试:
*/tests/*.js——在mocha.opts中递归
如果你想指定查找测试的确切文件夹,我做了这样的事情:
shared/tests/*.js --recursive
server/tests/graph/*.js --recursive
我希望这能帮助那些需要比其他答案更多的人
正如@superjos在评论中提到的那样
摩卡:递归"some_dir"
运行test_directory下的所有文件,包括与test.js匹配的子目录
find ./parent_test_directory -name '*test.js' | xargs mocha -R spec
或者使用——递归开关
mocha --recursive test_directory/
windows中的另一个选项是使用cross-env包,并在package.json中遵循npm脚本
"scripts": {
"test": "cross-env mocha '*.test.js'"
},
"devDependencies": {
"cross-env": "latest",
}
在这种情况下,根文件夹中带有*.test.js模式的所有测试文件将由mocha运行。
我在Windows 7上使用node.js v0.10.0和mocha v1.8.2和npm v1.2.14。 我只是想让摩卡使用路径测试/单元来找到我的测试, 在花了很长时间并尝试了几件事之后,
使用"test/unit/*.js"选项在windows上不起作用。 windows shell不像unixen那样展开通配符是有原因的。
但是使用“test/unit”也可以,没有文件模式。 如。“mocha test/unit”会运行test/unit文件夹下的所有文件。
这仍然只运行一个文件夹文件作为测试,但您可以传递多个目录名称作为参数。
此外,要运行单个测试文件,您可以指定完整的路径和文件名。 如。“摩卡测试/单位/ mytest1.js”
我实际上是在包里安装的。NPM Json "脚本":{ “测试”:“摩卡测试/单元” },
所以'npm test'运行我的单元测试。
推荐文章
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 单元测试反模式目录
- ReferenceError: description没有定义NodeJs
- 将一个二进制的NodeJS Buffer转换为JavaScript的ArrayBuffer
- 类未找到:IntelliJ中的空测试套件
- AngularJS只适用于单页应用程序吗?
- 如何在vue-cli项目中更改端口号
- Mockito的argumentCaptor的例子
- 同步和异步编程(在node.js中)的区别是什么?
- 如何编辑通过npm安装的节点模块?
- 单元测试:日期时间。现在
- 为什么单元测试中的代码不能找到包资源?
- “node_modules”文件夹应该包含在git存储库中吗
- 从导入的模块中模拟函数
- 在单元测试中设置HttpContext.Current.Session