[TypeScript] Jestですべてのテストスイートの最初/最後に実行したい処理の指定

 Jestでテストの最後にDBをクリーンアップしたいときとかあると思います。

 今回はその方法についてまとめ。

package.jsonに全テストスイート前後の処理を設定


 package.jsonのjestの記述の中にglobalSetup/globalTeardownという項目を追加します。

 ここで指定するスクリプトが全テストスイート前後の処理になります。

    "jest": {
        "transform": {
            ".(ts|tsx)": "ts-jest"
        },
        "globals": {
            "ts-jest": {
                "tsConfig": "tsconfig.json"
            }
        },
        "testMatch": [
            "**/tests/**/*.test.(ts|tsx)"
        ],
        "globalSetup": "./src/tests/setup.ts",  // ここ!!!
        "globalTeardown": "./src/tests/teardown.ts"  // ここ!!!
    }

全テストスイート前後の処理スクリプト


 こんな感じで全テストスイート前後に実行したい関数をexport defaultします。asyncでも問題ないです。

export default async () => {
  await DBのクリーンアップなど...
}

サンプルコード


 TypeScript/Express/jest/supertest/prismaあたりを用いたサンプルコードをGithubにあげているのでよかったら見てみてください。

https://github.com/pei223/express-prisma-sample

コメントを残す

メールアドレスが公開されることはありません。