【Jest】特定のテストのみを実行する方法!onlyを使おう!

Jestを使ったテストの中で、特定のテストケースやテストスイートだけを実行したいと思ったことはありませんか?

Jestのonlyメソッドを使えば、特定のテストを実行することができます。

この記事では『Jestのonlyメソッド』について、以下の内容をサンプルコードを用いてわかりやすく解説します。

  • Jestのonlyメソッドとは
    • test.onlyの使い方
    • describe.onlyの使い方

Jestのonlyメソッドとは

Jestでは、test.onlydescribe.onlyを使うことで、特定のテストケースまたはテストスイートだけを実行できます。他のテストは無視されるので、デバッグや開発中に一部のテストだけに集中したい場合に便利です。

test.onlyの使い方

以下に簡単なサンプルコードを示します。test.onlyを使えば、特定のテストケースだけを実行できます。

// math.test.js
describe('Math functions', () => {
  test('adds 1 + 2 to equal 3', () => {
    expect(1 + 2).toBe(3);
  });

  test('subtracts 5 - 2 to equal 3', () => {
    expect(5 - 2).toBe(3);
  });

  test.only('multiplies 2 * 3 to equal 6', () => {
    expect(2 * 3).toBe(6);
  });
});

上記のコードを実行すると、以下のようにtest.onlyが指定されたテストケース(multiplies 2 * 3 to equal 6)だけが実行されます。

$ npm test

> test@1.0.0 test
> jest

 PASS  ./math.test.js
  Math functions
    √ multiplies 2 * 3 to equal 6 (5 ms)
    ○ skipped adds 1 + 2 to equal 3
    ○ skipped subtracts 5 - 2 to equal 3

Test Suites: 1 passed, 1 total
Tests:       2 skipped, 1 passed, 3 total
Snapshots:   0 total
Time:        3.708 s
Ran all test suites.

describe.onlyの使い方

以下に簡単なサンプルコードを示します。describe.onlyを使えば、特定のテストスイート(Math functions - Addition and Multiplication)だけを実行できます。

// math.test.js
describe.only('Math functions - Addition and Multiplication', () => {
  test('adds 1 + 2 to equal 3', () => {
    expect(1 + 2).toBe(3);
  });

  test('multiplies 2 * 3 to equal 6', () => {
    expect(2 * 3).toBe(6);
  });
});

describe('Math functions - Subtraction', () => {
  test('subtracts 5 - 2 to equal 3', () => {
    expect(5 - 2).toBe(3);
  });
});

上記のコードを実行すると、以下のようにdescribe.onlyが指定されたテストスイートだけが実行されます。

$ npm test

> test@1.0.0 test
> jest

 PASS  ./math.test.js
  Math functions - Addition and Multiplication
    √ adds 1 + 2 to equal 3 (6 ms)
    √ multiplies 2 * 3 to equal 6 (1 ms)
  Math functions - Subtraction
    ○ skipped subtracts 5 - 2 to equal 3

Test Suites: 1 passed, 1 total
Tests:       1 skipped, 2 passed, 3 total
Snapshots:   0 total
Time:        0.495 s, estimated 3 s
Ran all test suites.

注意点

  • onlyは忘れずに外しましょう!
    • 開発中にonlyを使用した場合、コミット前にすべてのテストを実行するのを忘れないようにしましょう。

本記事のまとめ

この記事では『Jestのonlyメソッド』を用いて、特定のテストのみを実行する方法を説明しました。

onlyメソッドを使うと、デバッグが簡単になり、特定のテストに集中できます。ぜひ、開発中に活用して効率的にテストを行ってください!

お読み頂きありがとうございました。