Unit testing 在针对SailsJS控制器的CircleCI上运行单元测试时始终超时

Unit testing 在针对SailsJS控制器的CircleCI上运行单元测试时始终超时,unit-testing,timeout,sails.js,geometry,circleci,Unit Testing,Timeout,Sails.js,Geometry,Circleci,我的帆控制器是这样的: function sendUser(req ,res) { console.log('sendUser running'); return res.send('jerryc'); } module.exports = { user: sendUser }; var should = require('should'); var supertest = require('supertest'); var express = require('express'

我的帆控制器是这样的:

function sendUser(req ,res) {
  console.log('sendUser running');
  return res.send('jerryc');
}

module.exports = {
  user: sendUser
};
var should = require('should');
var supertest = require('supertest');
var express = require('express');

describe('request', function () {

  it('try to request express app by use supertest', function (done) {
    var app = express();

    app.get('/user', function(req, res){
      res.send(200, { name: 'tobi' });
    });

    supertest(app)
      .get('/user')
      .end(function(err, res){
        if (err) return done(err);
        done();
      });
  });

  it('try to request sails app by use supertest', function (done) {
    var app = sails.hooks.http.app;

    supertest(app)
      .get('/user')
      .end(function (err, res) {
        if (err){
          return done(err);
        }
        console.log(res.text);
        done();
      });
  });

  it('try to request sails app by use supertest and timeout is over 200s', function (done) {
    this.timeout(200000);
    var app = sails.hooks.http.app;

    supertest(app)
      .get('/user')
      .end(function (err, res) {
        if (err){
          return done(err);
        }
        console.log(res.text);
        done();
      });
  });
});
我的单元测试是这样的:

function sendUser(req ,res) {
  console.log('sendUser running');
  return res.send('jerryc');
}

module.exports = {
  user: sendUser
};
var should = require('should');
var supertest = require('supertest');
var express = require('express');

describe('request', function () {

  it('try to request express app by use supertest', function (done) {
    var app = express();

    app.get('/user', function(req, res){
      res.send(200, { name: 'tobi' });
    });

    supertest(app)
      .get('/user')
      .end(function(err, res){
        if (err) return done(err);
        done();
      });
  });

  it('try to request sails app by use supertest', function (done) {
    var app = sails.hooks.http.app;

    supertest(app)
      .get('/user')
      .end(function (err, res) {
        if (err){
          return done(err);
        }
        console.log(res.text);
        done();
      });
  });

  it('try to request sails app by use supertest and timeout is over 200s', function (done) {
    this.timeout(200000);
    var app = sails.hooks.http.app;

    supertest(app)
      .get('/user')
      .end(function (err, res) {
        if (err){
          return done(err);
        }
        console.log(res.text);
        done();
      });
  });
});
结果是:

  • 在第一种情况下,我使用express app并及时(1500ms)响应,但代码
    console.log('sendUser running')
    执行并输出一条消息:“sendUser running”
  • 在第三种情况下,我使用了sails应用程序angain,但这次
    this.timeout=200000
    ,它成功响应,响应时间超过120秒 所以,我的问题是:
    任何原因都会导致在带帆的圆圈上反应缓慢?
    以及使响应速度超过120秒的解决方案?

    顺便说一下,我在本地环境机器上正常运行所有这些测试用例

    试跑前你是否扬帆?试跑前你是否扬帆?