やりたいこと
RSpecでは
$ rspec hoge_spec.rb:50
というように、行番号を指定して、その行を含むテストのみ実行できる。これと同じことをJestでもしたい。
実現方法
Jestにはそのような機能は無い。
2017年にissueが上がって「interesting」と言われているが、今に至るまで実装されていない。
VSCodeのJest Runnerという拡張を使うと、CodeLensでエディタ内に「Run」「Debug]というリンクが表示され、クリックするとそのテストを実行できる。
そこで、Jest Runnerのソースを流用させてもらい、テストのファイル名だけ抽出して表示するスクリプトを作った:jestname.js
あとはそのテスト名を-t
で指定してjest
を実行するスクリプトを作ればよい。
例:(環境や好みに応じて書き換えていただきたい)
#!/bin/sh
filename="$1"
linenum="$2"
name=$(node jestname.js "$filename:$linenum")
if [ "$name" != "" ]; then
npx jest "$filename" -t "$name"
fi