ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

gbのテストで特定のものを実行する、結果を色付けする

タイトルにあるように、gbのテストで

  • 特定のパッケージ、メソッドを実行する
  • テストの結果の詳細を表示する、結果を色付けして分かりやすくする

方法についてです。
ただgbだけでなく、普通の「go test」でも使えるかと思います。
(go testの場合は「gb」を「go」に変えるだけです。)

パッケージ・メソッドを指定、詳細を表示する方法

まず、パッケージ・メソッドを指定、詳細を表示する方法についてです。
以下のようなコマンドとなります。

gb test パッケージ名 -run テスト対象メソッド -v

それぞれについて説明すると

  • パッケージ名 ・・・ gb test の後にテスト対象のパッケージ名を指定
  • -run ・・・ テスト対象のテストメソッド名を指定
  • -v ・・・ 詳細を出力するためのオプション

です。

結果を色づけする方法

次に結果を色づけする方法についてです。
testing - colorizing golang test run output - Stack Overflow
こちらのstackoverflowの記事を参考にし、今回はsedで特定のキーワードを色付けすることにしました。

先のコマンドの結果をパイプで繋げ、以下のように実行します。

gb test パッケージ名 -run テスト対象メソッド -v \
| sed ''/RUN/s//$(printf "\033[33mRUN\033[0m")/'' \
| sed ''/PASS/s//$(printf "\033[32mPASS\033[0m")/'' \
| sed ''/FAIL/s//$(printf "\033[31mFAIL\033[0m")/'' \
| sed ''/error/s//$(printf "\033[31merror\033[0m")/''
  • RUN ・・・ 黄色
  • PASS ・・・ 緑
  • FAIL ・・・ 赤
  • error ・・・ 赤

にそれぞれ色づけしています。
色の指定については以下のサイトを参考にしました。

http://yonchu.hatenablog.com/entry/2012/10/20/044603

これでGolangのテストについて、ターミナルから実行する場合に少しやり易くなるかと思います。
色を変えるsedコマンドについては、シェルスクリプトなどに書いておいて、パイプでシェルに渡してもいいかもです。