C/C++test は、DTP Server に Google Test のテスト実行結果を送信できるだけでなく、テスト フレームワークが作成した XML レポートを使ってローカルの HTML レポートを生成できます。 

Google Test の結果のレポート

  1. 通常の Google Test テスト ドライバー コマンドに次のオプションを追加します。   

    --gtest_output=xml:<result_filename>.xml 

    Google Test の結果の XML ファイルが生成されます。

  2. 次のテスト コンフィギュレーションを実行し、Google Test の結果の XML ファイルを入力として指定します (テスト コンフィギュレーションに関する詳細については「テスト コンフィギュレーションの設定」を参照してください)。

    cpptestcli -config builtin://GoogleTest -input <result_filename>.xml -publish

    HTML レポートが生成され、DTP Server にテスト結果を送信するよう構成されている場合は、結果が送信されます (「DTP への接続」を参照してください)。

C/C++test は以下のアクションを実行します。

  • dtp.project プロパティで指定されたプロジェクトにテスト結果を関連付けます。
  • dtp.user プロパティで指定された作成者にテストの失敗を関連付けます。

テスト ケース ファイルの関連付けの改善

Google Test の結果の XML ファイルは、限られた情報しか提供しないため、成功したテスト ケースとテスト対象ファイルが誤って関連付けられる可能性があります。そのため、一部の DTP ウィジェットでのテスト結果の表示に影響を与える場合があります。テスト ケース内で RecordProperty 関数を使用すると、テスト ケースとファイルの関連付けを強制することができます。属性名として cpptest_filename を使用し、ファイル名を 2 番目の引数として使用します。

TEST(ExampleTestSuite, ExampleTestCase) {
    RecordProperty("cpptest_filename", __FILE__);
}

RecordProperty 関数は Google Test フレームワークによって提供されます。

テストとコード カバレッジの関連付け

コード カバレッジの結果に自動的にテスト開始/終了情報を付けることができます (詳細については「結果ストリームへのテスト開始/終了情報の付加」を参照)。この機能を使用すると、特定のテストまたはテストのセットにより生成されたコード カバレッジだけを解析できます。 

  1. Google Test の main 関数を含むソース ファイルに特別なヘッダーをインクルードします。

    #include "cpptest/gtest.h"
  2. main 関数の InitGoogleTest() の呼び出しとテスト実行の間に次のコードを追加します。

    CppTest_GoogleTestListener::Append();

    または、GoogleTest API を直接使用して C++test のリスナーを登録します。

    ::testing::TestEventListeners& listeners = ::testing::UnitTest::GetInstance()->listeners();
    listeners.Append(new CppTest_GoogleTestListener());

    単純な例では、変更後の main 関数は次のようになります。

    GTEST_API_ int main(int argc, char **argv)
    {
      // Initializing GoogleTest
      testing::InitGoogleTest(&argc, argv);
    
      // Appending CppTest_GoogleTestListener
      CppTest_GoogleTestListener::Append();
    
      // Running tests
      return RUN_ALL_TESTS();
    }
  3. main 関数があるソース ファイルをコンパイルする際に cpptest/gtest.h ヘッダー ファイルを指定するには、 -I オプションを使用します。

    -I <Installation Directory>/runtime/include
  4. コード カバレッジの収集」で説明されている手順に従ってテスト実行モジュールをビルドします。
  5. 次のオプションを使用してテスト実行モジュールを実行します。

    --gtest_output=xml:<result_filename>.xml
  6. GoogleTest の結果の .xml ファイルおよびカバレッジ ログ ファイルをレポート生成の入力として指定し、cpptestcli を実行します。

    cpptestcli -config builtin://GoogleTest -input <result_filename>.xml -input cpptest_results.clog -publish

レポートの設定およびパブリッシュの詳細については「結果の参照」を参照してください。

  • No labels