Skip to content

Instantly share code, notes, and snippets.

@yaakaito
Last active February 10, 2024 16:41
Show Gist options
  • Save yaakaito/e4cc68dedb81065dba3eac4102d1c87e to your computer and use it in GitHub Desktop.
Save yaakaito/e4cc68dedb81065dba3eac4102d1c87e to your computer and use it in GitHub Desktop.
Node 組み込みテストランナーと swc で TypeScript をテストする

Node 18 から実験的に導入された組み込みのテストランナーがありますが、これが 21 で対象を glob 指定できるようになりました。

swc-node と組み合わせると、それなりに使えそうなテストランナーになりそうです。

これらを用意した状態で次のコマンドにすると、 TS をトランスパイルしつつ watch モードで動くテストランナーが作れます。

$ node --import @swc-node/register/esm-register --watch --test 'src/**/*.test.ts'

Note

webpack などのバンドラーを使って ESM で記述している場合、Node の ESM と共存できるようにする必要があります。 自分は import を *.js で行うようにし、 extentionAliasimport xxx from './xxx.js'.ts としても解決できるようにしました。 https://webpack.js.org/configuration/resolve/#resolveextensionalias

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment