LoginSignup
19
9

More than 1 year has passed since last update.

Jestの「 The error below may be caused by using the wrong test environment」の解決方法

Last updated at Posted at 2021-08-16

概要

Reactアプリケーションの開発で、Jestを27系にアップデートしたら以下のエラーが発生したので、対応を書き残します。

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

解決策

解決策は2通りあります。

ひとつ目。
テストファイルの冒頭に以下を書く。

/**
 * @jest-environment jsdom
 */

ふたつ目。
jest.config.jsで指定する。

module.exports = {
  // ...いろいろ設定
  testEnvironment: 'jsdom',
};

全テストファイルに書くのが面倒であれば、こちらにしましょう。

ただ、jest.config.jsで指定すると、全テストファイルに適用されてしまうので、
DOM APIを使わないテストファイルでは、テストファイル冒頭にnodeを指定するのを忘れずに。

/**
 * @jest-environment node
 */

詳細

Jest@27からデフォルトのtestEnvironmentが変わり、26まではjsdomでしたが、27からnodeになりました。

この変更の背景には、

  • nodeアプリ開発でテストを実行する際も、明記しなければjsdom環境で実行されてしまい、パフォーマンスが劣化
  • しかもjsdom環境で実行されていることに気づけない

という問題があり、それらを救済するためにデフォルトをnodeに変更したようです。

この変更で、DOM APIを使うフロントエンドのテストではエラーが発生するようになりました。
エラーが発生するから気づけるよね! 自分で設定変えてね! ということらしいです。

参考

19
9
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
19
9