公開: 2025年1月16日更新: 2025年1月16日
Post

Astro 5でVitestが動かなかった話

先日、当ブログをAstro 5にアップグレードしました。

その際、そろそろリファクタリングしたいなと思い、まずは自動テストを導入してリグレッションを防止しようとしたのですが…

messageImage_1736099009453.jpg.webp

[object Object]ってお前情報量なさすぎだろしばくぞ???????

結論

2025/1/17にリリースされたVitest 3を使ってください。

問題の切り分け

Vitestの設定を疑う

Testing - Astro Docsには、Vitest with Astro projectではgetViteConfigvitest.config.tsで使う必要があると書かれています。

これに従いますが、testフィールドがエラーになります。

となると原因はVitestそのものか、プロジェクト固有の問題になります。

新規プロジェクトで試す

pnpm create astro@latestで新規プロジェクトを立ち上げ、Vitestを導入しますが、同様のエラーが発生しました。

ここで、原因はVitestにあると判断しました。

Issueを見る

AstroのIssueを調べると、vitest.config.mjs in 5.0 beta - Unknown Error: [object object]というものが見つかりました。

要点は

  • Astro 5はVite 6を用いている
  • Vitest 2はVite 6をサポートしていない

ということです。

なのでpnpm update vitest@3.0.1でパッケージを更新すればOKです。