TL;DR
Visual Studio Code で編集中のテストコードを実行する
この記事にいたく感動したのでGo言語でもショートカット一発で任意の関数をテストしたくなった!
できばえ
- 開発言語非依存にしたかったのでシェルスクリプトで実装しました
- 関数名を定義した行に移動するのがめんどいかったのでコードの途中からでも出来るようにしました
やりかた
・以下、gotet.shをプロジェクト名フォルダの下に置いてください
gotest.sh
relativeFile=$1
lineNumber=$2
line=0
funcName=""
while :
do
cursol=`expr $lineNumber - $line`
if [ "$cursol" = "0" ]; then
break
fi
strs=`sed -n ${cursol}p $relativeFile | grep func | grep testing.T`
if [ "$strs" != "" ]; then
funcName=$strs
break
fi
line=`expr $line + 1`
done
if [ "$funcName" != "" ]; then
funcName=`echo $funcName | cut -d " " -f 2 | cut -d "(" -f 1`
echo "Testing function: $funcName"
go test -run $funcName
else
echo "not find Test function name..."
fi
・元記事の通りプロジェクト名フォルダの下に**.vscodeを掘って、以下tasks.json**を置く
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "run Go test here",
"type": "shell",
"command": "sh gotest.sh ${relativeFile} ${lineNumber}",
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared"
}
}
]
}
・このあたりを参照にキーバインドを設定してください
tasks.json
[
{
"key": "ctrl+shift+a",
"command": "workbench.action.tasks.runTask",
"args": "run Go test here"
}
]
ではでは
Windowsでもcygwinとかインストールすれば問題なく動きます。
Gow軽くて良いっすよ!
さらに
VS CodeのGo言語テストコード生成ツールを使ってみたらめちゃくちゃ便利だった話とか
こちらと組み合わせてテストテンプレートを自動生成するとテスト能率爆上がりなんでオススメです!!