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コマンドについては、シェルスクリプトなどに書いておいて、パイプでシェルに渡してもいいかもです。