LoginSignup
1
1

More than 3 years have passed since last update.

gradlewでテストが多すぎる時のシェルスクリプト

Posted at

背景

いつものように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
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1