通过javascript从端口停止进程

时间:2019-04-23 16:07:10

标签: javascript node.js jestjs

我正在开玩笑地为node.js应用程序编写一些测试。我有一个服务器server.js和一个测试文件server.test.js。在我的server.js中,使用该行

    var secureServer = https.createServer(options, 
    app).listen(config.node_port, () => {
    logger.info("Service running on " + config.node_port)
    });

在端口8082上启动服务器。在server.test.js中,我使用

    var posClient = require('./pos-ClientJS.js');

要访问我必须测试的功能。运行测试时,我将获得以下控制台输出:

    Jest did not exit one second after the test run has completed.

    This usually means that there are asynchronous operations that weren't 
    stopped in your tests. Consider running Jest with `-- 
    detectOpenHandles` to troubleshoot this issue.

所以我的问题是:有没有办法停止使用stop(8082)之类的javascript代码运行服务器?还是有一种不那么困难的方法来解决这个问题而不停止过程?

1 个答案:

答案 0 :(得分:1)

从Nodejs HTTP模块文档中,您可以调用secureServer.close()停止在指定端口上侦听。如果模块将服务器暴露给Jest,则可以使用teardown方法在测试完成后自动停止服务器。