LoginSignup
1
2

jestの公式ドキュメント見ながらテストしてたが、エラー出た

Last updated at Posted at 2023-10-09

こんにちは、ゆせです。
今回は、案件で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の公式ドキュメントを見ながら勉強していた際に起きたエラーの解決方法の一部を紹介しました。

誰かのお役に立てれば嬉しいです!

1
2
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
1
2