此代码抛出双回调!错误后跟:
TypeError:无法读取未定义的属性“status” 在Assertion。 (node_modules \柴\ lib中\柴\核心\ assertions.js:890:14) 在Assertion.ctx。(匿名函数)[作为属性](node_modules \ chai \ lib \ chai \ utils \ addMethod.js:41:25) 在Assertion。 (node_modules \齐HTTP \ lib中\ http.js:80:38) 在Assertion.ctx。(匿名函数)[作为状态](node_modules \ chai \ lib \ chai \ utils \ addMethod.js:41:25) 在tests \ unitTest \ helloWorld.js:16:37 在Test.Request.callback(node_modules \ chai-http \ node_modules \ superagent \ lib \ node \ index.js:615:12) 在ClientRequest。 (node_modules \齐HTTP \ node_modules \的SuperAgent \ lib中\节点\ index.js:567:10) 在Socket.socketErrorListener(_http_client.js:269:9) 在emitErrorNT(net.js:1269:8)
错误看起来是随机的,有时候有时不会发生。
var chai = require('chai')
, chaiHttp = require('chai-http');
chai.use(chaiHttp);
var assert = require('assert');
var expect = chai.expect;
require('should-http');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function(done) {
//assert.equal(-1, [1,2,3].indexOf(4));
//console.log("x")
chai.request('http://192.168.99.100:8080').get('/hello').end(function (err, res) {
expect(res).to.have.status(200);
res.text.should.equal('hello world2');
done();
});
});
});
});
答案 0 :(得分:0)
我看不到双重回调!您在堆栈跟踪中提到的错误。你有可能忘了复制一些东西吗?对我来说,感觉更多的是服务器超时并且你得到了超时错误,并且因为你得到超时,res var在回调中是未定义的,然后因为你试图访问未定义的var而中断。您可以尝试增加测试的超时时间:
this.timeout(4000);
并在回调中放入一些console.log以查看它的打印内容。另外,请确保,如果您运行多个测试,那么在运行其他测试之前,服务器不会崩溃。
答案 1 :(得分:0)
事实证明问题是每次更新服务器重新启动文件的新版本时,有时地址/端口不可用:
-Error listen:EADDRINUSE ::: 5858