Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点进程在调用';process.kill(';SIGTERM';)';,虽然我一直在听;SIGTERM";信号_Javascript_Node.js_Jestjs - Fatal编程技术网

Javascript 节点进程在调用';process.kill(';SIGTERM';)';,虽然我一直在听;SIGTERM";信号

Javascript 节点进程在调用';process.kill(';SIGTERM';)';,虽然我一直在听;SIGTERM";信号,javascript,node.js,jestjs,Javascript,Node.js,Jestjs,我听到了“SIGTERM”信号,要做一个优雅的关机: // snippet of server.js process.on('SIGTERM', () => { console.log('I will close database here.') process.exit(0) }) 我使用Jest进行测试,下面是代码: describe('on SIGTERM', () => { beforeAll(() => {

我听到了“SIGTERM”信号,要做一个优雅的关机:

   // snippet of server.js 
   process.on('SIGTERM', () => {
        console.log('I will close database here.')
        process.exit(0)
   })
我使用Jest进行测试,下面是代码:

describe('on SIGTERM', () => {
 beforeAll(() => {
     process.exit = jest.fn(); // substituted by mock function
     return require('../server'); // run server.js
 });

 it('should exit with code 0', async () => {
     process.kill(process.pid, 'SIGTERM'); // the code killed my jest process immediately
     expect(process.exit).toHaveBeenCalledWith(0);
 })
})
以下是错误消息:

npm运行测试:服务器服务器/测试/server.spec.js

错误命令失败,退出代码为143

我确信process.exit已被mock函数替换,因为我已尝试调用process.exit(0),该进程保持活动状态。但是process.kill立即终止了我的进程

为什么会发生这种情况


我怎样才能正确地进行测试?(我想测试这个过程。在('SIGTERM'))

有趣!!!!你在windows上吗?不,我是macOS。你的
模块导出在
server.js中是什么样子的?您可能只是需要您的服务器代码,而不是执行它。您找到解决方案了吗?