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
に変更すればいいです.