如何启动机车服务器/应用程序进行集成测试?

时间:2013-01-08 14:15:51

标签: should.js locomotivejs supertest

我正在将Express应用程序转换为机车,我无法弄清楚如何迁移我的测试。

在Express中,我只是在我的/test/test.api.organization.js文件中执行此操作:

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

describe("Organization API", function() {
  it( "GET /api/v1/organizations should return status 200 and Content-Type: application/json.", function (done) {
    postReq.done( function () {
      request(app)
        .get( "/api/v1/organizations" )
        .set( "Authorization", authData )
        .expect( 200 )
        .expect( 'Content-Type', /application\/json/, done );
    });
  });
}

就是这样 - 只需require'app文件即可。但是,机车没有app.jsserver.js文件,服务器只能从lcm server的命令行启动。

如何启动服务器/应用程序并让我的测试再次运行?

1 个答案:

答案 0 :(得分:2)

您可以自己启动机车应用程序:

var locomotive = require('locomotive');

describe('Test Name', function() {
  before(function(done) {
    // instantiate locomotive app
    this.app = new locomotive.Locomotive();
    this.app.boot(ROOTDIRECTORY, ENVIRONMENT, function() {
      done();
    });
  });
  // your test cases
});

ROOT_DIRECTORY是您的机车项目所在的目录,ENVIRONMENT是您希望机车应用程序运行的环境(通常为test)。