为什么不是bin / mocha运行我的所有测试?

时间:2014-02-15 14:55:16

标签: node.js express mocha

我有一个node.js / express / mocha项目。从我的项目的根目录,我做的

./node_modules/.bin/mocha --compilers coffee:coffee-script-redux/register test/**/*.coffee --reporter list

  1) UnitsController /units.json "before all" hook
  ․ CordBloodUnit should set attrs: 0ms
  ․ CordBloodUnit #getMatchCount should get the match count of alleles: 0ms
  ․ pg-adapter #runQuery should get results of the query: 7ms
  ․ pg-adapter #runQuery should get Cord Blood Units: 4ms

  4 passing (2s)
  1 failing

  1) UnitsController /units.json "before all" hook:
     Error: timeout of 2000ms exceeded
    at Object.<anonymous> (/Users/pguruprasad/Projects/jeevan-js/node_modules/mocha/lib/runnable.js:175:14)
    at Timer.list.ontimeout (timers.js:101:19)

我看到所有的测试都在运行。但是当我想将long命令放在脚本中执行时,mocha只运行两次测试并忽略其余的。这可能有什么问题?

➜  ~jjs git:(master) ✗ touch test1
➜  ~jjs git:(master) ✗ echo "./node_modules/.bin/mocha --compilers coffee:coffee-script-redux/register test/**/*.coffee --reporter list" >> test1
➜  ~jjs git:(master) ✗ cat test1
./node_modules/.bin/mocha --compilers coffee:coffee-script-redux/register test/**/*.coffee --reporter list
➜  ~jjs git:(master) ✗ chmod +x test1
➜  ~jjs git:(master) ✗ ./test1       

  ․ CordBloodUnit should set attrs: 0ms
  ․ CordBloodUnit #getMatchCount should get the match count of alleles: 0ms

  2 passing (2ms)

4 个答案:

答案 0 :(得分:1)

您的问题很可能是脚本运行的路径或环境变量不同。它可能正在运行全局mocha而不是项目中安装的mocha,或者它可能有不同的cwd。

我强烈建议将以下内容添加到package.json的脚本部分:

"scripts": {
    "test": "mocha --compilers coffee:coffee-script-redux/register test/**/*.coffee --reporter list",
  }

然后,您可以使用npm test轻松访问此内容。请注意,npm始终运行本地安装,而不是全局mocha。它还允许您执行诸如运行多个脚本之类的聪明操作,如How to run mocha and mocha-phantomjs tests from one "npm test" command in node.js?中所示。最后,它在Windows以及Unix和OS X中可靠地运行。

答案 1 :(得分:0)

尝试./node_modules/.bin/_mocha

答案 2 :(得分:0)

确保所有测试文件都具有 .coffee 扩展名,而不是 .js 。我喜欢做的一件事是,将所有测试都放在这个模式名称中: my_file_test.coffee 。全部使用 _test.coffee

答案 3 :(得分:-1)

这也发生在我身上,问题实际上是我有一个describe()阻止,其中没有it()个调用。希望能帮助别人!