首页 > 解决方案 > 从 javascript 通过端口停止进程

问题描述

我正在使用 jest 为 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.

所以我的问题是:有没有办法阻止服务器运行 javascript 代码之类的东西stop(8082)?或者有没有更简单的方法可以在不停止进程的情况下解决这个问题?

标签: javascriptnode.jsjestjs

解决方案


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


推荐阅读