iglooのテスト結果をTAP形式で出力する

C++ のテストフレームワーク igloo を使ってみた
の続きです。

iglooのテスト結果を出力する際は以下の様になります*1

これはこれでシンプルでいいのですが、もう少し情報が欲しいです。

そこでiglooを使ったテストでTAP形式*2で出力するTestLIstenerを書きました。

https://github.com/hideo55/igloo-TapTestListener

以下のように使います*3

#include <igloo/igloo.h>
#include <igloo/TapTestListener.h>

using namespace igloo;

Context(context_foo){
    Spec(spec_1) {
        ....
    }

    Spec(spec_2) {
        ....
    }
};

Context(context_bar){
    Spec(spec_1) {
        ....
    }
};

int main()
{
  DefaultTestResultsOutput output;
  TestRunner runner(output);

  TapTestListener listener;
  runner.AddListener(&listener);

  runner.Run();
}

出力は以下のようになります。

TAP形式で出力することによって、proveコマンドなどTAP形式をサポートしたツールを活用することが可能になるので、かなり便利になりました。

*1:成功をドット、失敗をFで表示する形式。テストツールによって名称が異なる。dot matrixやprogesssなど

*2:Test Anything Protocol

*3:cpp-HyperLogLogのテストを実行時の出力