Comment puis-je arrêter par programme une instance de ExpressJS pour les essais?

Je suis à essayer de comprendre comment arrêter une instance de l'Express. En fait, je cherche l'inverse de la .listen(port) appel - comment puis-je obtenir un Express server pour ARRÊTER l'écoute, libérer le port, et l'arrêt proprement?

Je sais que cela semble comme il pourrait être une étrange requête, voici donc le contexte; peut-être il ya une autre façon d'aborder cette et je suis en train de réfléchir de manière erronée. Je suis en train de l'installation d'un framework de test pour mon socket.io/nodejs app. C'est une page unique application, donc dans mes scripts de test (je suis en utilisant Moka, mais qui n'a pas vraiment d'importance) je veux être en mesure de démarrer le serveur, exécuter des tests contre elle, puis d'arrêter le serveur. Je peux contourner ce problème en supposant que le serveur est allumé avant le début du test, ou l'un des tests de démarrer le serveur et le fait que tous les test de supposer qu'il est, mais c'est vraiment salissant. Je préférerais de beaucoup avoir chaque fichier de test démarrer une instance de serveur avec les paramètres appropriés, puis fermer cette instance vers le bas lorsque les tests sont terminés. Cela signifie qu'il ya plus d'étranges dépendances à l'exécution du test et tout est propre. Cela signifie aussi que je peux faire de démarrage/arrêt de l'essai.

Donc, tous les conseils sur la façon de faire cela? J'ai pensé manuellement déclencher des exceptions à l'abattre, mais qui semble en désordre. J'ai creusé à travers Exprimer docs et de la source, mais n'arrive pas à trouver une méthode qui permettra d'arrêter le serveur. Il peut également y avoir quelque chose dans le support.io pour cela, mais depuis la socket serveur est simplement attaché à l'Express serveur, je pense que ce qui doit arriver à la couche.

InformationsquelleAutor drewww | 2011-12-28