こんにちは、ゆせです。
今回は、案件でjestを使用するとのことだったので、勉強としてjestの公式Docを見ながらやっていました。が、エラーが出たので、もし同じエラーにぶち当たった人に向けて参考になればという思いで記事にしようと思います。
本題に入る
以下が、エラー文になります。
$ npm test
> study-jest@0.1.0 test
> jest
Error: Jest: Failed to parse the TypeScript config file /WorkSpace/NextSpace/study-jest/jest.config.ts
Error: Jest: 'ts-node' is required for the TypeScript configuration files. Make sure it is installed
Error: Cannot find package 'ts-node' imported from /WorkSpace/NextSpace/study-jest/node_modules/jest-config/build/readConfigFileAndSetRootDir.js
at readConfigFileAndSetRootDir (/WorkSpace/NextSpace/study-jest/node_modules/jest-config/build/readConfigFileAndSetRootDir.js:116:13)
at async readInitialOptions (/WorkSpace/NextSpace/study-jest/node_modules/jest-config/build/index.js:403:13)
at async readConfig (/WorkSpace/NextSpace/study-jest/node_modules/jest-config/build/index.js:147:48)
at async readConfigs (/WorkSpace/NextSpace/study-jest/node_modules/jest-config/build/index.js:424:26)
at async runCLI (/WorkSpace/NextSpace/study-jest/node_modules/@jest/core/build/cli/index.js:151:59)
at async Object.run (/WorkSpace/NextSpace/study-jest/node_modules/jest-cli/build/run.js:130:37)
前提として、最初はnpm test
をしていてもエラーは出ていなかったのですが、Jest は Babel 経由で TypeScript をサポートしているので、公式ドキュメントに書かれていた
$ npm install --save-dev @babel/preset-typescript
をしました。それ以降,testファイルにさまざま書いて実行すると、エラーが出ました。(テストはjsファイルで書いていましたが、一応installしたって感じです)
解決方法
エラー文を見てみると
'ts-node' is required for the TypeScript configuration files.
と書かれてあるように、ts-nodeが必要だと書かれていました。ts-nodeのinstallをしていなかったのが、問題でしたね。かつ、公式Doc通りinstallしてもpackage.json
の中のdevDependencies
の中に、typescriptのバージョンも最新でinstallされていなかったので、アップデートも兼ねて、以下コマンドを実行しました。
$ npm install --save-dev typescript@latest ts-node@latest
テストしてみましょう。
$ npm test
> study-jest@0.1.0 test
> jest
PASS src/app/test/sum.test.js
✓ object assignment (1 ms)
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 0 | 0 | 0 | 0 |
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.369 s
Ran all test suites.
エラーがなくなり、無事テストが成功しました。
まとめ
今回は、jestの公式ドキュメントを見ながら勉強していた際に起きたエラーの解決方法の一部を紹介しました。
誰かのお役に立てれば嬉しいです!