LoginSignup
0
0

More than 3 years have passed since last update.

jestでテストを分類して個別に実行する

Posted at

TL;DR

hoge.{test category}.test.tsのようにテストファイルを命名する
例. `hoge.unit.test.ts

実行時に対象ファイルを指定する

npx jest ".*\.unit\.test\.ts$"

jest.unit.config.jsのように設定ファイルを分割するのもアリ

動機

  • テストにはそれぞれ特性がある
  • 単体テストと言われるような、依存関係が少なく、高速なもの
  • 統合テストと呼ばれるような依存関係があるもの
  • DBや外部APIアクセスがあるもの
  • ビルドが必要なもの

これらを一括で実行するのは現実的ではない

対策

テストを適切に分類し、それぞれ任意のタイミングで呼び出す

案1. テストファイル名で分類する

hoge.unit.test.tsのようにファイル名にテスト分類を入れる規約を作る

  • pro: どのようなテストをするファイルかわかりやすい

案2. テスト分類ごとにディレクトリを分割する

└── __tests__
    ├── integration
    │   └─── hoge.test.ts
    └─── unit
         └─── hoge.test.ts
  • pro: testコードをプロダクトコードと分けている場合はわかりやすい
  • con: testコードをプロダクトコードと並列にしている場合は使えない

案3. テストケース名に分類を入れる

試していないが以下の方な方法もできる?

describe("unit: hogeのテスト",() => {
  expect(hoge).toBe(true);
}

備考

テストをどう分類するかについてはまた別の課題とする
動機を考えると、test sizesでの分類が適しているかもしれない

結合テストと呼ぶのをやめた話

より良い手法があればコメントください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0