Closed5

Viteで作成したreact-tsプロジェクトにテストを導入したい

hitermhiterm

esbuild-jestは更新が2021/3で止まっている。
https://github.com/aelbore/esbuild-jest

そのせいか、Jest v27だと動かない。Jest v26にすると動いた。

import Reactは明示的に書く必要がある(=New JSX Transformは使えない: https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html)。
import ReactするとTypeScriptが使っていないと指摘してくるが、tsconfigでreact-jsxではなくreactを選べば良い。
https://www.typescriptlang.org/docs/handbook/jsx.html

CSS Modulesは使えない。import svgもできないので、プロジェクト作成時に入っている行は削除する必要がある。

hitermhiterm

https://vitest.dev/

@testing-library/reactを使う方法は、以下を参考にする。
https://github.com/vitest-dev/vitest/tree/dc4b342fc20bdb160fa6038b7a15259b986a3618/test/react-testing-lib

@testing-library/reactを使うには、vite.config.tsで、以下の設定が必須。

export default defineConfig({
  plugins: [react()],
  test: {
    global: true,
    environment: 'jsdom',
  },
})

expect等はtsserver上ではjestのものを使っていることになっているが、実行時にはVitest由来のものが使われるらしい。動くが気持ち悪い。

CSS Modulesも、import svgも使える。

transform周りの設定が要らないのは楽。

このスクラップは2022/01/01にクローズされました