Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当Mocha测试失败时,它会将一个对象记录到控制台_Javascript_Node.js_Bdd_Mocha.js - Fatal编程技术网

Javascript 当Mocha测试失败时,它会将一个对象记录到控制台

Javascript 当Mocha测试失败时,它会将一个对象记录到控制台,javascript,node.js,bdd,mocha.js,Javascript,Node.js,Bdd,Mocha.js,当我所有的测试都通过时,一切正常。然而,当一个测试在任何报告器处于活动状态时失败时,运行程序将打印一个表示strack跟踪的对象,而不是我在屏幕截图中看到的格式精美的错误消息 > mocha --reporter spec --ui bdd --ignore-leaks Site Routes GET /sites ✓ should return a 200 OK ✓ should be a JSON response ◦ should be an array: { "d

当我所有的测试都通过时,一切正常。然而,当一个测试在任何报告器处于活动状态时失败时,运行程序将打印一个表示strack跟踪的对象,而不是我在屏幕截图中看到的格式精美的错误消息

> mocha --reporter spec --ui bdd --ignore-leaks
Site Routes

GET /sites
  ✓ should return a 200 OK 
  ✓ should be a JSON response 
  ◦ should be an array: {
"date": "Fri Apr 19 2013 16:09:20 GMT-0400 (EDT)",
"process": {
  "pid": 34270,
  "uid": 1032026306,
  "gid": 116266774,
  "cwd": "/Users/squinn/Projects/armada",
  "execPath": "/usr/local/Cellar/node/0.10.4/bin/node",
  "version": "v0.10.4",
  "argv": [
    "node",
    "/Users/squinn/Projects/armada/node_modules/mocha/bin/_mocha",
    "--reporter",
    "spec",
    "--ui",
    "bdd",
    "--ignore-leaks"
  ],
  "memoryUsage": {
    "rss": 55717888,
    "heapTotal": 51000320,
    "heapUsed": 22281672
  }
},
"os": {
  "loadavg": [
    1.7001953125,
    1.66162109375,
    1.58984375
  ],
  "uptime": 374244
},
"trace": [
  {
    "column": 10,
    "file": "/Users/squinn/Projects/armada/node_modules/should/lib/should.js",
    "function": "Object.Assertion",
    "line": 368,
    "method": "Assertion",
    "native": false
  },
  {
    "column": 43,
    "file": "/Users/squinn/Projects/armada/test/route.sites.js",
    "function": "null.callback",
    "line": 47,
    "method": "callback",
    "native": false
  },
  {
    "column": 21,
    "file": "/Users/squinn/Projects/armada/node_modules/request/main.js",
    "function": "",
    "line": 290,
    "method": null,
    "native": false
  },
  {
    "column": 17,
    "file": "events.js",
    "function": "EventEmitter.emit",
    "line": 95,
    "method": "emit",
    "native": false
  },
  {
    "column": 54,
    "file": "/Users/squinn/Projects/armada/node_modules/request/main.js",
    "function": "",
    "line": 278,
    "method": null,
    "native": false
  },
  {
    "column": 20,
    "file": "events.js",
    "function": "IncomingMessage.EventEmitter.emit",
    "line": 117,
    "method": "EventEmitter.emit",
    "native": false
  },
  {
    "column": 14,
    "file": "_stream_readable.js",
    "function": null,
    "line": 883,
    "method": null,
    "native": false
  },
  {
    "column": 13,
    "file": "node.js",
    "function": "process._tickCallback",
    "line": 415,
    "method": "_tickCallback",
    "native": false
  }
],
"stack": [
  "AssertionError: expected [ { user: 'test',",
  "    group: 'group',",
  "    name: 'post-test',",
  "    domain: 'localhost:9000',",
  "    _id: '51718b214805d8fe83000003',",
  "    __v: 0,",
  "    modules: [],",
  "    labels: [ 'Test' ] } ] not to be an instance of Array: expected [ { user: 'test',",
  "    group: 'group',",
  "    name: 'post-test',",
  "    domain: 'localhost:9000',",
  "    _id: '51718b214805d8fe83000003',",
  "    __v: 0,",
  "    modules: [],",
  "    labels: [ 'Test' ] } ] not to be an instance of Array",
  "    at Object.Assertion (/Users/squinn/Projects/armada/node_modules/should/lib/should.js:368:10)",
  "    at null.callback (/Users/squinn/Projects/armada/test/route.sites.js:47:43)",
  "    at null.<anonymous> (/Users/squinn/Projects/armada/node_modules/request/main.js:290:21)",
  "    at EventEmitter.emit (events.js:95:17)",
  "    at IncomingMessage.<anonymous> (/Users/squinn/Projects/armada/node_modules/request/main.js:278:54)",
  "    at IncomingMessage.EventEmitter.emit (events.js:117:20)",
  "    at _stream_readable.js:883:14",
  "    at process._tickCallback (node.js:415:13)"
],
"level": "error",
"message": "uncaughtException"
}
npm ERR! Test failed.  See above for more details.
npm ERR! not ok code 0
有什么线索可以解释我为什么看不到美丽的风景吗?

你使用的
--忽略泄漏
表明你使用的是过时的摩卡咖啡。(后来改为
——检查泄漏

使用
npm安装-g mocha
安装最新版本


此外,您似乎正在获得JSON reporter。检查您是否有
test/mocha.opts
文件,尽管我不明白为什么它不会被您的命令行参数覆盖。

由于异步行为,该对象被记录到控制台
should.js
正确抛出错误,但不是作为
done()
回调的参数。我通过在try/catch语句中包装来修复错误,这样我就可以将错误传递给
done()


谢谢你的回答,但不幸的是,这不是解决办法。没有摩卡选择,因为我更喜欢在make文件中使用内联命令。
describe('GET /sites', function (){

  var url = 'http://localhost:' + app.get('api').port + '/sites';

  it('should return a 200 OK', function (done){
    request(url, function (err, res){
      res.should.have.status(200);
      done();
    });
  });

  it('should be a JSON response', function (done){
    request(url, function (err, res, body){
      res.should.be.json;
      done();
    })
  });

  it('should be an array', function (done){
    request(url, function (err, res, body){
      JSON.parse(body).should.not.be.an.instanceOf(Array);
      done();
    });
  });

});
it('should return a 200 OK', function (done){
  request(url, function (err, res){
    try {
      res.should.have.status(200);
    }
    catch (e){
      done(e);
    }
  });
});