我在一些项目中使用Sails.js。现在我写了一些单元测试。我的测试文件夹层次结构如下:
/test
bootstrat.test.js
mocha.opts
/unit
/controller
User.js
Representative.js
/model
User.js
Representative.js
/service
Utility.js
为了进行测试,我现在必须运行以下所有命令:
$ mocha test/unit/controller
$ mocha test/unit/model
$ mocha test/unit/service
但这是耗时且过于手动的。我想用一个命令运行所有这些测试并搜索谷歌。我试过运行mocha --recursive test
。但它不起作用。它会导致以下错误 -
1) "before all" hook
2) "after all" hook
0 passing (2s)
2 failing
1) "before all" hook:
Error: timeout of 2000ms exceeded
at null.<anonymous> (/usr/local/lib/node_modules/mocha/lib/runnable.js:159:19)
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
2) "after all" hook:
TypeError: Cannot call method 'lower' of undefined
at Context.<anonymous> (/home/gladiator/Codes/rms-generic-web/test/bootstrap.test.js:21:9)
at Hook.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:218:15)
at next (/usr/local/lib/node_modules/mocha/lib/runner.js:259:10)
at Object._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:276:5)
at processImmediate [as _immediateCallback] (timers.js:345:15)
有没有办法只用一个命令运行所有这些测试?
答案 0 :(得分:3)
您是否尝试制作自己的bash脚本?
创建mocha.sh并将其放入其中:
#!/bin/bash
mocha test/unit/controller
mocha test/unit/model
mocha test/unit/service
并使用sh ./mocha.sh
我不知道摩卡可以用它来做。
答案 1 :(得分:1)
在 package.json 文件中,只需添加以下内容:
"scripts": {
"test": "mocha ./test -b -t 10000"
}
-b在第一次失败后停止测试。
-t是以毫秒为单位的测试用例超时
然后从包含package.json和test文件夹的目录运行npm test
命令。它将运行所有测试。