1

我对 Angular 世界还很陌生,并且一直在使用 angular-fullstack 生成器 + Yeoman 来构建一个项目。我正在使用 Sublime(不是 Webstorm),并且一直在尝试弄清楚如何设置项目,以便我可以从终端调试 mocha 测试,但我碰壁了。

这是使用 'yo angular-fullstack' 生成的默认 things.spec.js,其中添加了调试器语句。

var should = require('should');
var app = require('../../app');
var request = require('supertest');

describe('GET /api/things', function() {
   it('should respond with JSON array', function(done) {
       request(app)
          .get('/api/things')
          .expect(200)
          .expect('Content-Type', /json/)
          .end(function(err, res) {
              debugger;
              if (err) return done(err);
              res.body.should.be.instanceof(Array);
              done();
          });
   });
});

通过结合来自grunt-mocha-test 文档的建议和这个SO answer,我更新了 package.json 中的测试脚本,如下所示:

"scripts": {
    "test": "node-debug <PATH TO GRUNT-CLI>\\grunt test"
}

当我运行“npm test”时,node-inspector 成功启动了一个浏览器实例并将调试会话附加到我的测试进程中。但是,当我按“继续”时,调试器断点未命中,并且测试失败并出现以下堆栈。任何人都知道是什么原因造成的吗?

TypeError: Cannot read property '_host' of null
  at ClientRequest.http.ClientRequest.onSocket (eval at WRAPPED_BY_NODE_INSPECTOR (\node_modules\node-inspector\node_modules\v8-debug\v8-debug.js:95:15), <anonymous>:381:28)
  at new ClientRequest (http.js:1432:10)
  at Object.exports.request (http.js:1843:10)
  at Test.Request.request (\node_modules\supertest\node_modules\superagent\lib\node\index.js:615:28)
  at Test.Request.end (\node_modules\supertest\node_modules\superagent\lib\node\index.js:677:18)
  at Test.end (\node_modules\supertest\lib\test.js:123:7)
  at Context.<anonymous> (\server\api\thing\thing.spec.js:14:8)
  at Test.Runnable.run (\node_modules\grunt-mocha-test\node_modules\mocha\lib\runnable.js:196:15)
  at Runner.runTest (\node_modules\grunt-mocha-test\node_modules\mocha\lib\runner.js:374:10)
  at Runner.runTests.next (\node_modules\grunt-mocha-test\node_modules\mocha\lib\runner.js:452:12)
4

1 回答 1

0

这看起来像是 Node Inspector 中的一个错误。 https://github.com/node-inspector/node-inspector/issues/698

于 2015-07-21T15:48:36.433 回答