使用mocha和超级testing的NodeJS HTTPS APItesting – “DEPTH_ZERO_SELF_SIGNED_CERT”

我需要使用mochasuper test来testing通过HTTPS提供的API(证书未过期)

这是服务器的要点:

 ... var app = express(); var _options = { key: fs.readFileSync('my-key.pem');, cert: fs.readFileSync('my-cert.pem') }; // Start HTTPS server https.createServer(_options, app).listen(app.get('port'), app.get('ip'), function () { // ok or not logs }); 

这是要testing的路线

 app.get('/hello',function (req, res) { res.json(200); }); 

我试图用这个代码在test/test.jstest/test.js

  var supertest = require('supertest'), api = supertest('https://localhost:3000'); describe('Hello test', function () { it('hello', function (done) { api.get('/hello') .expect(200) .end(function (err, res) { if (err) { done(err); } else { done(); } }); }); }); 

但testingFAILs ,出现以下错误:

  enter Error: DEPTH_ZERO_SELF_SIGNED_CERT at SecurePair.<anonymous> (tls.js:1349:32) at SecurePair.EventEmitter.emit (events.js:92:17) at SecurePair.maybeInitFinished (tls.js:962:10) at CleartextStream.read [as _read] (tls.js:463:15) at CleartextStream.Readable.read (_stream_readable.js:320:10) at EncryptedStream.write [as _write] (tls.js:366:25) at doWrite (_stream_writable.js:219:10) at writeOrBuffer (_stream_writable.js:209:5) at EncryptedStream.Writable.write (_stream_writable.js:180:11) at write (_stream_readable.js:573:24) at flow (_stream_readable.js:582:7) at Socket.pipeOnReadable (_stream_readable.js:614:5) at Socket.EventEmitter.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:408:10) at emitReadable (_stream_readable.js:404:5) at readableAddChunk (_stream_readable.js:165:9) at Socket.Readable.push (_stream_readable.js:127:10) at TCP.onread (net.js:526:21) 

在使用普通的HTTP ,testing是通过的

只是为了其他人也想知道该怎么做。 添加这个test.js的顶部,你会没事的:

 process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';