测试失败后不运行 Jest globalTeardown

Bil*_*hah 11 testing node.js jestjs

我正在尝试通过代码启动和停止无服务器应用程序。一旦所有测试通过,我就可以启动和停止它。但是,当测试失败globalTeardown时不运行。您可以在此处查看示例项目:https : //github.com/bilalsha/sls-test-jest/tree/fail_test

teardown.js

module.exports = async function() {
    let slsOfflineProcess = global.__SERVERD__;
    slsOfflineProcess.stdin.write('q\n');
    slsOfflineProcess.stdin.pause();
    await slsOfflineProcess.kill('SIGINT');
    console.log('Serverless Offline stopped');
};

Run Code Online (Sandbox Code Playgroud)

output

      7 |              expect(res.statusCode).toEqual(200);
    >  8 |              expect(res.body).toEqual('Go Serverless v1.0! Your function executed successfully!');
         |                               ^
       9 |      });
      10 | });
      11 | 

      at Object.<anonymous> (handler.test.js:8:20)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        1.972s, estimated 2s
Ran all test suites.
npm ERR! Test failed.  See above for more details.
Run Code Online (Sandbox Code Playgroud)

安杰帅*_*安杰帅 3

只需查看文档,当您将其设置为时,您的问题似乎出在 jest.config.js 中bail: true

https://github.com/bilalsha/sls-test-jest/blob/fail_test/test/jest.config.js#L3

文档说,如果保释为真,则与在第一次失败后停止测试相同。

https://jestjs.io/docs/en/configuration#bail-number--boolean

我会尝试更改bail: 0(默认值),看看它是否会产生您预期的行为。