今後数年間のC++ユニットテストフレームワークを設定する過程で、GoogleTestとCppUnitを最終候補に挙げました。私は両方の経験があり、私の好みはGoogleTestです。とにかく上司を説得するためにいくつかの事実が必要なので、マニュアル、ウィキページ、いくつかの情報源など、インターネットでいくつか読んだ。私はGoogleTestの利点と単一のCppUnitの利点(グラフィックテストランナー)のリストを思いついた。ここでは、それらは認識された有用性によって順序付けられています。
- INSTANTIATE_TEST_CASE_Pは、デカルト積を含む、必要なパラメーターのセットを使用してテストケースをインスタンス化します。
- プライベートクラスメンバーをテストするためのFRIEND_TEST(すべてのレガシーコード用)
- アサートをブレークポイントに変える
- 致命的ではない主張
- 「箱から出して」googlemock統合
- 自動テスト検出、それらを列挙する必要はありません
- テストは無効および有効にできます
- 実行するテストは、名前パターンを使用して選択できます
- 値/型パラメーター化されたテスト
- ユーザー定義の述語がアサートします
- 死のテスト
- はるかに豊富な一連のアサート
- タイプがアサートします
- サブルーチンでのアサート
- <<を使用して、追加のデバッグ情報をアサートに追加できます。
- RecordPropertyは、プロパティの最後の値をXML出力に出力します
- SCOPED_TRACEは、サブルーチンまたはループの内部から発生するアサーション障害のコンテキストを理解するのに役立ちます。
- xUnit XML出力。XSLT変換を行わなくても、Jenkinsですぐに表示できます。
- カスタムタイプのプリンタをサポート
- テスト表示にかかる時間(これはCppUnitでも可能だと思いますが、まだ理解していません)
- テストイベントリスナーAPI(ユーザー定義プラグイン)
- テストシャッフル
- 例外なしとRTTI
上記のすべてがCppUnitでサポートされていないと仮定して正しいですか?不足しているCppUnitで 利用できない便利なGoogleTest機能はありますか?
最後になりましたが、GoogleTestに欠けている優れたCppUnit機能はありますか?
ありがとう!