このセクションの内容

はじめに

コード カバレッジ結果にテスト開始/終了情報を付加し、特定のテスト シナリオがコードの実行に与える影響を理解するのに役立てることができます。テスト開始の通知にはテスト名情報が含まれ、テスト データの処理やレポートの生成を行う際に利用できます。

テスト開始/終了情報の付加機能は API として提供されており、さまざまなシナリオに適用できます。たとえば、コード カバレッジ結果を単体テストと関連付けたり、コード カバレッジ結果をシステム テスト中に実行された手動テスト シナリオと関連付けるなどです。

テスト開始/終了 API の使用

API には次の関数があります。

API 関数を呼び出すソース ファイルに API 専用のヘッダー ファイルをインクルードします。 

#include "cpptest/cpptest.h"

ソース ファイルをコンパイルするときに、-I オプションを使用して cpptest.h ヘッダー ファイルの場所を指定します。 

-I <Installation Directory>/runtime/include

CppTest_TestStart 関数の引数として有効な文字列を指定します。Null ポインターまたは無効な文字列を渡すと、未定義の振る舞いの原因となります。

テスト開始/終了シナリオのよくある応用例

以下のシナリオは、テスト開始/終了通知 API の使用例を表しています。

カバレッジ結果に単体テスト名を付加する

このシナリオでは、単体テスト ケース名は CppTest_TestStart  関数の呼び出し引数として使用されます。一般的に使用される C/C++ 単体テスト フレームワークの中には、このタスクを自動化する専用のコネクタを提供するものもあります。単体テスト フレームワーク コネクタの詳細については、 「単体テスト」を参照してください。専用のコネクタがない単体テスト フレームワークを使用する場合、テスト ケースの開始時と終了時に開始/終了通知 API 関数を呼び出すことができます。

#include "cpptest/cpptest.h"

TEST(TimerTest, smokeTest) {
  const char * tcName = testCaseName();
  CppTest_TestStart(tcName);
  int res = init_timer();
  ASSERT_TRUE(res != 0);
  CppTest_TestStop();
}

カバレッジ結果にシステム テスト セッションの手動テスト シナリオ名を付加する

この目的を達成するには、いくつかの方法があります。