Closed5

Solid JS + Viteのテスト環境(Vitest)

Solid JS, Vite(, Typescript)環境におけるテスト導入に手間取ったので覚書

公式ドキュメントに倣って、Jestやuvuの導入を試みたが、コンポーネント内で利用していたviteのglob importが悪さをするのか、エラーが出力される。

なんらかの設定で、対応可能かもしれないが、郷に入れば郷に従えということで?、Vitestの導入を試みた。

導入は超簡単で、

npm install -D vitest

そしてviteの設定を追加する。

// vite.config.ts
export default defineConfig({
  // 他の何か
  test: {
    environment: 'jsdom',
    transformMode: {
      web: [/\.[jt]sx?$/],
    },
    deps: {
      inline: [
        /solid-js/,
      ],
    },
  },
 // 他の何か
}

ところが、コンポーネントテストを行うと、

SyntaxError: The requested module 'solid-js/web' does not provide an export named 'hydrate'

のエラーが生じる。'hydrate'ではなくて'render'パターンもあるらしい。これは、他の方も既に記しているようにnpmやyarn利用時に生じるトラブルらしい。pnpmを用いれば解決可能なようだが、試していない。

エラーの原因と解決策が先日見つけられたようなので、こちらを参考に

// vite.config.ts
deps: {
  inline: [
    /solid-js/,
    /solid-testing-library/,  // 追加
  ],
},

の一行を追加することで解決。

coverageが機能していなかったが、pnpm利用の環境だと上手くいった。

このスクラップは3ヶ月前にクローズされました
作成者以外のコメントは許可されていません