2 votes

L'application Koa se bloque lorsqu'elle est testée avec supertest

Mon fichier supertest / tape test ressemble à ceci :

var test    = require('tape');
var app     = require('../../api');
var agent = require('supertest').agent
var supertestCompatibleServer = agent(app.callback());

test('GET /Campus.svc', function (t) { 

  supertestCompatibleServer
  .get('/Campus.svc')
  .expect(200)
  .expect('Content-Type', /json/)
  .end(function (err, res) {
    t.ifError(err, 'No error');
    t.end();
  });
});
  1. Le point de terminaison que je teste fonctionne bien lorsqu'on démarre le serveur et qu'on le sollicite manuellement avec curl ou le navigateur.
  2. Les tests fonctionnent bien et passent, mais ils se bloquent à la fin au lieu de se terminer.
  3. Le code actuel du point de terminaison accède à la base de données et renvoie des enregistrements sous forme de fichiers json.

Quelle pourrait être la cause du blocage des tests et comment puis-je y remédier ?

1voto

Jonah Points 4458

Il s'est avéré que cela était lié à ce problème : https://github.com/substack/tape/issues/216

Dans mon cas, la connexion à la base de données via knex était toujours ouverte, ce qui provoquait la fin du processus de nœud. La solution était d'appeler explicitement knex.destroy() dans un test de démontage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X