摩卡试图寻找下测试文件test
在默认情况下,我怎么指定另一个目录,例如: server-test
?
Answer 1:
如果你想还只是运行做mocha
在命令行上,但希望到一个文件夹中运行测试./server-tests
代替./test
,在创建文件./test/mocha.opts
只此在文件中:
server-tests
如果你想运行该文件夹和子目录中的一切,要把它放到test/mocha.opts
server-tests
--recursive
mocha.opts
是通过命令行传入的参数,这样使得第一线刚刚建立的目录要更改测试也将重定向来自./test/
Answer 2:
用这个:
mocha server-test
或者,如果你有子目录使用:
mocha "server-test/**/*.js"
注意使用双引号的。 如果忽略他们,你可能无法在子目录中运行测试。
Answer 3:
这里有一种方法,如果你在你的测试文件夹例如有子
/test
/test/server-test
/test/other-test
然后,在linux下可以使用find命令列出所有* .js文件递归文件,并把它传递到摩卡:
mocha $(find test -name '*.js')
Answer 4:
不要使用-g或--grep选项,这种模式在它(内部测试的名称),而不是文件系统操作。 当前文档不误导和/或有关这一完全错误的。 为了限制整个命令到文件系统的一部分,可以通过一个模式作为最后一个参数(它不是一个标志)。
例如,该命令将设置你的记者符合规范,但只会测试JS文件,立即在服务器test目录内:
mocha --reporter spec server-test/*.js
此命令将执行与上述相同的,再加上它只会运行测试的情况下测试的是()串/定义开头“Fnord:”:
mocha --reporter spec --grep "Fnord:" server-test/*.js
Answer 5:
漂亮的方式做到这一点是添加在的package.json“测试” NPM脚本,用正确的参数来调用摩卡。 这样,你的package.json还介绍了您的测试结构。 这也避免了其他答案所有这些跨平台问题(双VS单引号,“发现”等)
有摩卡运行所有在“测试”目录js文件:
"scripts": {
"start": "node ./bin/www", -- not required for tests, just here for context
"test": "mocha test/**/*.js"
},
然后只运行冒烟测试拨打:
npm test
您可以在标准化所有项目这种方式,所有测试的运行,因此当一个新的开发你的项目或另一个开始,他们知道“故宫测试”将运行测试。 有很好的历史先例为这个(Maven的,例如,最老学校“作”的项目也是如此)。 这肯定有助于CI当所有项目具有相同的测试命令。
同样,您可能会遇到您可能希望摩卡跑得更快“冒烟”测试的一个子集:
"scripts": {
"test": "mocha test/**/*.js"
"smoketest": "mocha smoketest/**/*.js"
},
然后只运行冒烟测试拨打:
npm smoketest
另一种常见的模式是将在相同的目录中,他们测试源的测试,但调用测试文件* .spec.js。 例如:SRC /富/ foo.js是由src /富/ foo.spec.js测试。
要运行按照惯例命名所有的测试* .spec.js:
"scripts": {
"test": "mocha **/*.spec.js"
},
然后,运行所有测试拨打:
npm test
看到这里的格局? 好。 :)一致性失败村 。
Answer 6:
运行中的所有文件test_directory
匹配包括子目录test.js
find ./parent_test_directory -name '*test.js' | xargs mocha -R spec
或使用--recursive
开关
mocha --recursive test_directory/
Answer 7:
我刚才有这个问题,通过删除解决它--recursive
选项(我已成立),并使用相同的结构上面建议:
mochify "test/unit/**/*.js"
这种电脑采用了所有测试下的所有目录/test/unit/
为我而忽视内部的其他目录/test/
Answer 8:
我在Windows 7上使用Node.js的v0.10.0和摩卡v1.8.2的和NPM v1.2.14。 我只是试图让摩卡使用通道测试/单位找到我的测试,花费长,并试图几件事我登陆后,
使用“测试/单位/ *。JS”选项不工作在Windows上。 对于Windows外壳不扩大像unixen通配符很好的理由。
然而,使用“测试/单位”没有工作,没有文件模式。 例如。 “摩卡测试/单位”运行测试/单元文件夹中的所有文件。
这只仍然运行一个文件夹中的文件作为测试,但你可以通过多个目录名作为参数。
同时运行,你可以指定完整的路径和文件名单个测试文件。 例如。 “摩卡测试/单元/ mytest1.js”
其实,我在设置为的package.json故宫“脚本”:{“测试”:“摩卡测试/单位”},
所以这是故宫测试“运行我的单元测试。
Answer 9:
如果您使用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"
的子文档
然后,只需运行测试通常为npm test
Answer 10:
正如在评论中提到使用由@superjos
mocha --recursive "some_dir"
Answer 11:
这似乎并没有成为改变test目录的任何“易”的支持。
但是,也许你应该看看这个问题 ,相对于你的问题。
Answer 12:
作为@杰夫-迪基建议,在你的项目的根,做一个文件夹,名为test
。 在该文件夹中,一个名为mocha.opts
。 现在,我尝试改善杰夫的回答,什么工作对我来说是不是指定只是一个测试文件夹的名称,我指定一个模式来查找所有的测试中添加这一行我的项目运行:
*/tests/*.js --recursive
在mocha.opts
如果你不是要指定确切的文件夹来寻找,我做了一件这样的测试:
shared/tests/*.js --recursive
server/tests/graph/*.js --recursive
我希望这有助于人谁需要比其他的答案提供更多
Answer 13:
如果在node.js中 ,一些新的配置作为摩卡V6的:
选项1:创建.mocharc.json
在项目的根目录:
{
"spec": "path/to/test/files"
}
选项2:添加mocha
在项目的属性package.json
:
{
...
"mocha": {
"spec": "path/to/test/files"
}
}
更多选项是在这里 。