背景
いつものようにSpring Boot Kotlinで開発している際に、
「テ、テストケース800近い。。。ビルドなげぇ。。。」
なんて思っていると、
JDBC関連のDB接続エラー
これがたまに起きてしまいます(原因は結局よくわからず。。。)
テストの件数が多すぎてなっているような気がするのですが、急ぎではないので(CIなどでは問題が起きない)
いつも放置します
ただ、忙しい開発期間ではどうしてもビルドがちゃんと通るか見たい、テストが通るか見たいという状況にはなるので、
仕方がないので一個一個ディレクトリごとにfindで掘って実行するようにしました
スクリプト例
通常ver.
#!/bin/bash
echo "##### Start clean build exclude test"
./gradlew clean build -x test
echo "##### Start tests per dir"
for i in $(find $1 -type d -d)
do
if find $i -maxdepth 1 -name "*.kt" | grep -v "^\s*$" > /dev/null 2>&1
then
DIR_PATH=$(echo $i | sed -e "s/$(echo $1 | sed -e "s/\//\\\hoge\//g" | sed -e "s/hoge//g")\\///")
MODULE_NAME=$(echo $DIR_PATH | sed -e "s/\\//\\./g")
echo "##### Start test $MODULE_NAME"
time ./gradlew test --tests "$MODULE_NAME.*"
fi
done
grep ver.
#!/bin/bash
echo "##### Start clean build exclude test"
./gradlew clean build -x test
echo "##### Start tests per dir"
for i in $(find $1 -type d -d)
do
if find $i -maxdepth 1 -name "*.kt" | grep -v "^\s*$" > /dev/null 2>&1
then
DIR_PATH=$(echo $i | sed -e "s/$(echo $1 | sed -e "s/\//\\\hoge\//g" | sed -e "s/hoge//g")\\///")
MODULE_NAME=$(echo $DIR_PATH | sed -e "s/\\//\\./g")
echo "##### Start test $MODULE_NAME"
time ./gradlew test --tests "$MODULE_NAME.*" | grep -e "BUILD" -e "FAILED"
fi
done