jest SecurityError: localStorage is not available for opaque origins

1972 ワード

jest SecurityError: localStorage is not available for opaque origins


最近、会社のプロジェクトにユニットテストを追加し、jestフレームワークを選択しましたが、quickstartの時にエラーに遭遇しました.エラー情報はタイトルのように、localstorageはブラウザのものですが、私のここの環境はnodeで、原因は明らかです.公式文書の解釈を見てみましょう
This option sets the URL for the jsdom environment. It is reflected in properties such as location.href.

このフィールドはjsdomを設定する環境で、locationにマッピングされます.href上.今私の環境はnodeで、この間違いを避けるためにtestURLをhttp://localhostに設定することができます
Jestのこの方法はあまり賢明ではないと思います.少なくともtestURLの問題を何らかの方法で表示すべきです.localStorage is not available for opaque originsという間違いではなく
使用中jestの場合、まだ使えますjest --initで作成jest.config.js、これはjestのプロファイルです.もちろん、私たちもpackage.jsonに追加jestフィールドで構成します.
この過程で選択肢があります
✔ Would you like to use Jest when running "test" script in "package.json"? … yes
? Choose the test environment that will be used for testing › - Use arrow-keys. Return to submit.
❯  node
   jsdom (browser-like)

ここでnodeかjsdomかを選択することができ、jsdom環境はブラウザに似た環境であり、ここでの構成はjestにマッピングされる.config.jsのtestEnvironmentフィールドのうち、nodeまたはjsdomの2つのオプションを選択できます.
デフォルトはjsdomなので、ここではこのようなエラーが発生します.解決策はtestEnvironmentのフィールドをnodeに変更すればいいです.