jestで特定のファイル(ファイルごと)でtestする環境を変えたい場合


JavaScriptのテスティングフレームワークとして有名なjestですが、使っていると以下のようなエラーが起きることがあります。

The error below may be caused by using the wrong test environment, see https://jestjs.io/docs/en/configuration#testenvironment-string.
    Consider using the "node" test environment.

jestではテストの実行するときの環境が、デフォルトでjsdomになるのですが、テストファイルによっては上記のようなエラーに出くわします。

そこで、ファイルごとに環境を変えられたらいいのにと思って調べていたところ、公式ドキュメントに載っていました。

以下がその方法です。

test.ts
/**
 * @jest-environment jsdom
 */

test('use jsdom in this test file', () => {
  const element = document.createElement('div');
  expect(element).not.toBeNull();
});

ファイルの上部(多分どこでも大丈夫だと思いますが)に@jest-environment jsdom@jest-environment nodeを追加することで、そのファイルのみ別の環境でテストできます!!