PowerShellスクリプトでテストコードを書く
テストコードを書いたら、Makefileにテストコードを実行するターゲットを追加する。「make test」でテストコードが実行されるようにしたい。書き換えたあとのMakefileは次のようになる。
Makefile
CMD= csv2tsv.exe
SRCS= $(wildcard *.c)
OBJS= $(SRCS:.c=.o)
CC= clang
CFLAGS+=-g
build: $(CMD)
$(CMD): $(OBJS)
$(CC) $(CFLAGS) -o $(CMD) $(OBJS)
.c.o:
$(CC) -c $< -o $@
test: $(CMD)
pwsh .\tests\test001.ps1
clean:
rm -f *.exe
rm -f *.o
rm -f *.ilk
rm -f *.pdb
test:というターゲットが追加されていることがわかるだろう。ここでテストスクリプトを実行している。
書き換えてからmake testと実行すれば、次のようにテストコードの実行を確認できる。
make testでテストコードの実行を確認
PS C:\Users\daichi\Documents\vscode-csv2tsv> make test
pwsh .\tests\test001.ps1
テスト001: 成功
PS C:\Users\daichi\Documents\vscode-csv2tsv>
tasks.jsonに反映させてVisual Studio Codeから実行
あとはtasks.jsonを書き換えて、Visual Studio Codeから「make test」が実行されるようにすればテストコードのセットアップは完了だ。書き換えたtasks.jsonファイルは次のようになる。
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Clang",
"type": "process",
"command": "make",
"args": [
"build"
],
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Test",
"type": "process",
"command": "make",
"args": [
"test"
],
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
これで「Ctrl」+「Shift」+「B」を押すか、メニューから「ターミナル」→「ビルドタスクの実行」を選択して、リストから「Test」を選択すれば、次のようにテストコードが実行される。
コードを書き換えたらテストコードを実行し、すべてのテストに通るか確認する。この作業を繰り返すことで、これまでの動作と互換性を維持しながら開発を進めることができるというわけだ。
テストコードを取り込むのは、最初はこういったシンプルでわかりやすいものから取り組んでみるとよい。