Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Continuous integration 如何在IBMCloudMocha测试中找到服务器?_Continuous Integration_Mocha.js_Ibm Cloud_Chai - Fatal编程技术网

Continuous integration 如何在IBMCloudMocha测试中找到服务器?

Continuous integration 如何在IBMCloudMocha测试中找到服务器?,continuous-integration,mocha.js,ibm-cloud,chai,Continuous Integration,Mocha.js,Ibm Cloud,Chai,我可以让测试在云上运行,但它失败了。然而,它在本地起作用。我想这是因为我没有正确的服务器地址。我尝试了myserver.bluemix.net、localhost:5001和在本地工作的null。我好像找不到地址了 我的单元测试: process.env.NODE_ENV = 'test'; var chai = require('chai'); var chaiHttp = require('chai-http'); var app = require('../index'); var cf

我可以让测试在云上运行,但它失败了。然而,它在本地起作用。我想这是因为我没有正确的服务器地址。我尝试了myserver.bluemix.net、localhost:5001和在本地工作的null。我好像找不到地址了

我的单元测试:

process.env.NODE_ENV = 'test';

var chai = require('chai');
var chaiHttp = require('chai-http');
var app = require('../index');
var cfenv = require('cfenv');


var should = chai.should();
var expect = chai.expect;
chai.use(chaiHttp);


describe('Conversation', function() {

var serviceBaseUrl = '';
if (process.env.test_env == 'cloud') {
serviceBaseUrl
= 'http://' + '127.0.0.1:5001';
}

  it ('should return message', function(done){
  chai.request(app)
  .post(serviceBaseUrl + '/api/v1/conversation')
      .send({input: "test", ConverationId: ""})
      .end(function (err, res) {
        res.status.should.equal(200);
        console.log(res.body);
        done();
      });

  });

});
这就是错误:

Server running at http://127.0.0.1:5001
  Conversation
    1) should return message
double callback!


  0 passing (33ms)
  1 failing

  1) Conversation
   should return message:
 Uncaught TypeError: Cannot read property 'status' of undefined
  at test/test-conversation.js:27:12
  at Test.Request.callback (/home/pipeline/79a4adb4-e686-494a-9974-3c5860240fcb/node_modules/superagent/lib/node/index.js:615:12)
  at ClientRequest.<anonymous> (/home/pipeline/79a4adb4-e686-494a-9974-3c5860240fcb/node_modules/superagent/lib/node/index.js:567:10)
  at Socket.socketErrorListener (_http_client.js:309:9)
  at emitErrorNT (net.js:1281:8)
  at _combinedTickCallback (internal/process/next_tick.js:74:11)
  at process._tickCallback (internal/process/next_tick.js:98:9)
服务器运行于http://127.0.0.1:5001
会话
1) 应该返回消息
双重回拨!
0通过(33毫秒)
1失败
1) 谈话
应返回消息:
未捕获的TypeError:无法读取未定义的属性“status”
在test/testconversation.js:27:12
在Test.Request.callback(/home/pipeline/79a4adb4-e686-494a-9974-3c5860240fcb/node_modules/superagent/lib/node/index.js:615:12)
在ClientRequest。(/home/pipeline/79a4adb4-e686-494a-9974-3c5860240fcb/node_modules/superagent/lib/node/index.js:567:10)
位于Socket.socketErrorListener(_http_client.js:309:9)
在emitErrorNT(net.js:1281:8)
at _combinedTickCallback(内部/流程/下一步_tick.js:74:11)
在进程中。_tick回调(内部/process/next_tick.js:98:9)

如果这是一个单元测试,您应该使用mock来隔离您的测试环境。问题是,您的本地主机的基本url将与您的应用部署到云中时不同

考虑使用类似于模拟api请求的库


如果您正在进行和/或希望进行集成测试,可以使用以下内容设置基本url:

const base = process.env['ROUTE'] || 'http://localhost:3000/route';
(其中,
process.env['ROUTE']
可能类似于
'https://app.mybluemix.net/route“