web-dev-qa-db-ja.com

Jest TypeError:パスは文字列でなければなりません。未定義の受信

Package.jsonの以下の設定

コマンドラインnpm testから実行すると、すべてのjestテストケースが正しく実行されます。コマンドラインからjestコマンドを直接使用する場合、次のエラーが表示されます。

テストスイートの実行に失敗しました

TypeError: Path must be a string. Received undefined

  at assertPath (path.js:7:11)
  at Object.relative (path.js:538:5)

これは、すべてのテストファイルで発生します。

何が間違っている可能性があり、それを修正する方法はありますか?

 "scripts": {
        "test": "standard && jest",
        "format": "standard --fix",
        "start": "webpack-dev-server --config webpack.config.dev.js",
        "build": "webpack --config webpack.config.prod.js"
    },
28
GibboK

私はこの問題を次の方法で解決しました。

  • npm uninstall -g jest
  • npm install -g jest
  • npm cache clean
  • npmインストール
16
GibboK

ここで問題が何であるかは完全にはわかりませんが、同じ問題に直面していましたが、Jestバージョンを更新するのが効果的でした。私は20を使用していましたが、21に切り替えて、今では再び魔法のように動作します。

package.jsonのバージョンを更新してからrm -rf node_modules && npm installを実行します

19
eyarmush

私の場合、jestをバージョン21.x(20.xから)に更新する必要がありました。

npm install jest@latest --save-devを実行してみてください。

13
Robin

私にとっては、21.xに突入したjest-cliパッケージでした。 npm update jest-cli --save-dev

7
Dominic Tracey

私はこの問題を次の方法で解決しました。

remove node_modules remove package-lock.json

jestのpackage.jsonからdev依存関係を削除npm remove jest --save-dev.

npm cache clean

次に、コマンドnpm installを実行します

その後、npm install jest@latest --save-devをインストールします

これは私のために働く

2
Harsh Shah

私にとっては、ダウングレードする必要がありました。バージョン21.xは私のために働いた。

2
Will Humphreys