reactのアプリケーションを作成しています。
テストはgithub actions
を用いてPull Request作成するたびに自動で行われるようにしています。以下はgithub actions用のyamlファイルです。
test.yml
test.yml
1name: Node.js CI 2 3on: pull_request 4 5jobs: 6 test: 7 runs-on: ubuntu-latest 8 9 strategy: 10 matrix: 11 node-version: [15.x] 12 # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 13 14 steps: 15 - uses: actions/checkout@v2 16 - name: Cache Node.js modules 17 uses: actions/cache@v2 18 with: 19 path: ~/.npm 20 key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} 21 restore-keys: | 22 ${{ runner.OS }}-node- 23 ${{ runner.OS }}- 24 - name: docker-compose up 25 run: docker-compose up -d firestore 26 - run: sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share} 27 - run: npm install --legacy-peer-deps npm@latest 28 - run: rm package-lock.json 29 - run: rm -rf node_modules 30 - run: sed -i 's/babel-jest//g' package.json 31 - run: npm install 32 - run: CI=false npm run build 33 - run: npm test
今までは普通にテストが通っていたのですが、最近になって急にテストが通らなくなりました。原因を考えてみると、テストを書いている部分のコード以外の部分を変更した時にテストが通らなくなったことからコードの変更というよりもパッケージの依存関係(?)だと思っています。
また、github actionsの画面のログには以下のような記載がありました。
ts-jest[versions] (WARN) Version 24.9.0 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=26.0.0 <27.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
上記のエラー分からts-jestまたは@types/jestのバージョンが26.0.0以下にした方が良いのでは?と解釈しました。
試したこと
①test.yml
の最終行(npm test)の直前にnpm install ts-jest
を追加してts-jestをアップデートしようとした→結果は変わらずエラーメッセージも同じ
②test.yml
の①と同じ場所にnpm install @types/jest
を追加→結果は変わらずエラーメッセージも同じ
③test.yml
の①と同じ場所にnpm install @types/jest@26.0.0
のようにバージョンを指定して追加→結果は変わらずエラーメッセージも同じ
④test.yml
の①と同じ場所にnpm install ts-jest@26.0.0
のようにバージョンを指定して追加→結果は変わらなかったがエラーメッセージに下記のメッセージが追加された
ts-jest[versions] (WARN) Version 4.1.5 of typescript installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=3.8.0 <4.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
⑤CIとは関係なく普通にnpm test
を実行してみる→今までは通っていたのに、今回になってsh: jest: command not found
というエラーでそもそもテストができなくなった。
色々調べてみたのですが、なかなか解決できそうになかったので質問させていただきました。
あなたの回答
tips
プレビュー