如何指定摩卡的testing目录?
摩卡力图默认testingtesting文件,如何指定另一个目录,例如server-test
?
这里有一种方法,如果你有你的testing文件夹中的子文件夹
/test /test/server-test /test/other-test
然后在Linux中,您可以使用find命令recursion列出所有* .js文件并将其传递给mocha:
mocha $(find test -name '*.js')
用这个:
mocha server-test
或者如果你有子目录使用这个:
mocha "server-test/**/*.js"
请注意使用双引号。 如果你忽略它们,你可能无法在子目录中运行testing。
如果你想通过在命令行上运行mocha
来做到这一点,但是想在./server-tests
而不是./test
文件夹下运行testing,只需要在./test/mocha.opts
文件中创build一个文件./test/mocha.opts
在文件中:
server-tests
如果你想运行该文件夹和子目录中的所有东西,把它放到test/mocha.opts
server-tests --recursive
mocha.opts
是通过命令行传入的参数,所以使第一行只是您想要更改testing的目录也将从./test/
redirect
不要使用-g或–grep选项,该模式在它()内部的testing名称上运行,而不是文件系统。 目前的文件是误导和/或彻底的错误。 为了将整个命令限制在文件系统的一部分,可以传递一个模式作为最后一个参数(它不是一个标志)。
例如,这个命令将设置您的记者规范,但只会立即testing服务器testing目录内的js文件:
mocha --reporter spec server-test/*.js
这个命令将执行与上面相同的操作,并且只会运行testing的it()string/定义以“Fnord:”开头的testing用例:
mocha --reporter spec --grep "Fnord:" server-test/*.js
我刚才有这个问题,通过删除--recursive
选项(我已经设置)并使用上面build议的相同的结构来解决它:
mochify "test/unit/**/*.js"
这在/test/unit/
目录下的所有目录下运行了所有的testing,而忽略了/test/
运行test_directory
所有文件,包括与test.js
匹配的test.js
find ./parent_test_directory -name '*test.js' | xargs mocha -R spec
或者使用--recursive
开关
mocha --recursive test_directory/
我在Windows 7上使用node.js v0.10.0和mocha v1.8.2和npm v1.2.14。 我只是试图让摩卡使用pathtesting/单位来find我的testing,花了很长时间,尝试了我登陆的几件事情之后,
使用“test / unit / *。js”选项在Windows上不起作用。 有很好的理由,Windowsshell不像unixen扩展通配符。
但是,使用“testing/单位”的工作,没有文件模式。 例如。 “摩卡testing/单元”运行testing/单元文件夹中的所有文件。
这只能运行一个文件夹文件作为testing,但您可以传递多个目录名称作为参数。
也要运行一个testing文件,你可以指定完整的path和文件名。 例如。 “摩卡testing/单元/ mytest1.js”
我实际上在package.json中设置了npm“scripts”:{“test”:“mocha test / unit”},
所以'npm test'运行我的unit testing。
如果你正在使用nodejs
,在你的package.json
scripts
- 对于
global (-g)
安装:对于子文档,"test": "mocha server-test"
或"test": "mocha server-test/**/*.js"
- 对于
project
安装:"test": "node_modules/mocha/bin/mocha server-test"
或"test": "node_modules/mocha/bin/mocha server-test/**/*.js"
然后,正常运行你的testing作为npm test
这似乎没有任何“简单”支持更改testing目录。
但是,也许你应该看看这个问题 ,相对于你的问题。
正如@superjos在评论中提到的那样使用
mocha --recursive "some_dir"