背景
githubを立てないような一人プロジェクトでもUnitテストを導入したいなと思いたった。
完全自分用メモ。
実装
pre-commit.sample
をpre-commit
にリネーム後、下記を追加
shellScript
errors=$(xcodebuild -project {対象プロジェクト}.xcodeproj -scheme {テストスキーム} -destination 'platform=iOS Simulator,name={テスト対象のシミュレータ名}' test | grep 'XCT.* failed')
if [ -z "$errors" ]; then
echo "test Success!!!"
else
echo "\033[0;31m ********** Test Failed ********** \033[0;39m"
echo "\033[0;31m${errors}\033[0;39m"
echo "\033[0;31m ********** Test Failed ********** \033[0;39m"
exit 1
fi
xcodebuild
を使ってターミナルからテストを実行、結果から「XCT(ほにゃらら) failed」を含む行をgrep
するという簡単なscriptです。
次にサンプルとして失敗するテストコードを用意。
swift
func testExample() {
XCTAssert(false, "test failed")
}
実行結果
ターミナルから、git commit
を行うとテストが実行されます。
テストに失敗した時は下記の形でターミナルに表示されます。