Jest run async function ONCE before all tests

后端 未结 4 1138
名媛妹妹
名媛妹妹 2021-02-05 02:45

I want to use jest for my server unit testing (instead of mocha+chai). Is there a way I can run async function before all tests start (init purposes) only once and not for every

相关标签:
4条回答
  • 2021-02-05 03:04

    This feature was added in Jest's 22 version, with globalSetup and globalTeardown configurations. Look at this for examples.

    0 讨论(0)
  • 2021-02-05 03:04

    jest provides options for both global setup and teardown in new versions. You can create files for both setup and teardown exporting an async function and provide that path in jest configurarion like this.

    "globalSetup": "setup-file-path",
    "globalTeardown": "tear-down-file-path"
    

    You can read about it further here

    0 讨论(0)
  • 2021-02-05 03:10

    Jest provides beforeAll and afterAll. As with test/it it will wait for a promise to resolve, if the function returns a promise.

    beforeAll(() => {
      return new Promise(resolve => {
        // Asynchronous task
        // ...
        resolve();
      });
    });
    

    It also supports callback style, if you have some existing test code that uses callbacks, although it's recommended to use promises.

    beforeAll(done => {
      // Asynchronous task
      // ...
      done();
    });
    
    0 讨论(0)
  • 2021-02-05 03:18

    If you execute jest tests with npm you can run any node command or any executable before executing other command

    "scripts": {
        "test": "node setup.js && jest"
      }
    

    so now you can run this with command

    $ npm t
    
    0 讨论(0)
提交回复
热议问题