🐄

Jestで特定のテストケースだけ実行したいときは、describe.only(test.only)で!

2022/03/25に公開

概要

一部のテストケースのみ失敗していて、デバッグのために該当のテストケースだけ実行したい場合があります。
今回はそんな時に使える書き方を知ったので、備忘録として記事にしたいと思います📝

結論

describe.only で実行するテストケースを絞ることが可能!
(test.only でも可能)

describe.onlyの場合

  • describeをマルっと指定して実行します。
describe('画面にアクセスしたとき', () => {
  describe.only('正常系', () => {
    test.only('〇〇が表示されないこと', () => {
      // 中略
    });
    
    test('Blog一覧APIの結果が取得出来ていること', () => {
      // 中略
    });
  });

  describe('異常系', () => {
    describe('通信エラーのとき', () => {
      // 中略
    });
  });
});
$ yarn test pages/blogs/index.spec.ts

 PASS  pages/blogs/index.spec.ts
  blogs/Index
    画面にアクセスしたとき
      正常系
        ✓ 〇〇が表示されないこと
        ✓ Blog一覧APIの結果が取得出来ていること
      異常系
        通信エラーのとき
          ○ skipped 〇〇 が 呼ばれること

test.onlyの場合

  • 指定したテストケースだけに絞って実行します。
describe('画面にアクセスしたとき', () => {
  describe.only('正常系', () => {
    test.only('〇〇が表示されないこと', () => {
      // 中略
    });
    
    test('Blog一覧APIの結果が取得出来ていること', () => {
      // 中略
    });
  });

  describe('異常系', () => {
    describe('通信エラーのとき', () => {
      // 中略
    });
  });
});
$ yarn test pages/blogs/index.spec.ts

 PASS  pages/blogs/index.spec.ts
  blogs/Index
    画面にアクセスしたとき
      正常系
        ✓ 〇〇が表示されないこと
        ○ skipped Blog一覧APIの結果が取得出来ていること
      異常系
        通信エラーのとき
          ○ skipped 〇〇 が 呼ばれること

公式ドキュメント

特定のテストケースだけ実行したい場合

  • describe.only

https://jestjs.io/ja/docs/api#describeonlyname-fn

  • test.only

https://jestjs.io/ja/docs/api#testonlyname-fn-timeout

特定のテストケースだけ実行したくない場合

  • describe.skip

https://jestjs.io/ja/docs/api#describeskipname-fn

  • test.skip

https://jestjs.io/ja/docs/api#testskipname-fn

その他

  • test.todo

https://jestjs.io/ja/docs/next/api#testtodoname

Discussion