🪟

WindowsのVS CodeのClaude CodeからVitestが動かなかったメモ

に公開
2026/01/10

はじめに

普段Macで開発していて何の問題もなかったのですが、Windowsマシンに環境を移したところ、VS CodeのClaude Code拡張からVitestを実行すると謎のエラーで全テストが失敗するようになりました。

同じ問題で困っている方がいるかもしれないので、メモとして書き残しておきます。もっと良い解決策をご存知の方がいらっしゃったら、教えてくだされば 🙏

何が起きたか

Error: Vitest failed to find the runner. This is a bug in Vitest. Please, open an issue with reproduction.
      4| 
      5| // Cleanup after each test
      6| afterEach(() => {
       | ^
      7|   cleanup()
      8| })

Claude Code経由でテストを実行すると、こんなエラーが出て全テストが失敗します。

ちなみにWindowsのPowerShellやcmdから直接実行すると普通に動くんですよね...。Claude Code経由だけがダメという。

環境

  • Windows 11
  • VS Code + Claude Code拡張
  • Vitest 4.0.16
  • Node.js 24.x

原因(たぶん)

調べてみた感じ、Claude Code拡張が内部でGit Bash(MSYS/MINGW環境)を使っているようで、これとVitest 4の組み合わせに互換性問題があるっぽいです。

確証はないですが...。

試したけどダメだったこと

いろいろ試してみましたが、全滅でした。

対策 結果
pool: 'forks' ❌
globals: true ❌
sequence.hooks: 'list' ❌
NO_COLOR=1 環境変数 文字化けは直るけど❌
MSYS_NO_PATHCONV=1 ❌
afterEach の明示的インポート(最初から実装済み) ❌

Stack OverflowやGitHub Issuesで見つけた対策を片っ端から試しましたが、何やってもダメでした。

Vitest 3へのダウングレードも試みましたが、Storybook等がVitest 4を要求するので依存関係が崩壊して断念しました。

回避策

根本解決ではないのですが、PowerShellでテストを実行して、結果をファイルに吐き出し、それをClaude Codeに読んでもらう運用にしました。

$env:NO_COLOR=1; npm run test:unit > test-results.txt 2>&1

NO_COLOR=1 はANSIカラーコードを無効化して、ファイル出力時の文字化けを防ぐためです。

Claude Codeはファイル読み取りは問題ないので、テスト結果の分析やエラー修正の提案は普通にお願いできます。ちょっと手間ですが、現状これで凌いでいます。

おわりに

Macでは全く問題なかったので、Windows + Claude Codeという組み合わせ限定の問題だと思います。

あまりスマートな解決策ではないですが、同じ問題で詰まっている方の参考になれば幸いです。

2026/01/10 追記

その後の調査で、package.jsonで定義されたスクリプト経由(npm run testなど)では正常にテストが実行できることが分かりました。

つまり:

  • ❌ Claude Code経由で直接Vitest実行 → エラー
  • ✅ npm run testなど → 正常動作

これにより、PowerShellで結果をファイルに出力する回避策よりも、単純にpackage.jsonで定義されたスクリプトを使う方が楽かもしれません。

根本原因はやはりClaude Code拡張が使用しているシェル環境とVitest 4の互換性問題のようですが、npm scripts経由であれば問題なく動作します。

Discussion