C で関数単体テストのカバレッジを測定する方法には、GCC の -fprofile-arcs フラグや -ftest-coverage フラグなどのコンパイラ フラグを使用する方法、Google Test の --gtest_output=xml フラグなどのテスト フレームワークを使用する方法があります。コヴラップなど。
#C 関数の単体テストのカバレッジを測定するにはどうすればよいですか?
コード カバレッジは単体テストの品質を示す重要な指標です。実行時にテスト スイートでカバーされた関数コードの量を示します。 C では、カバレッジを測定する方法がいくつかあります。
コンパイラ フラグの使用
多くのコンパイラは、カバレッジを測定するためのフラグを提供しています。たとえば、GCC コンパイラを使用する場合:
g++ -fprofile-arcs -ftest-coverage your_code.cpp
プログラムを実行すると、現在のディレクトリに gcov.out
という名前のファイルが生成されます。このファイルにはカバレッジ情報が含まれています。
テスト フレームワークの使用
Google Test (gtest) などのテスト フレームワークには、組み込みのカバレッジ測定ツールが用意されています。 gtest で、--gtest_output=xml
フラグを使用してテストを実行します。
gtest your_test_case --gtest_output=xml
これにより、カバレッジ データを含む XML ファイルが生成されます。
外部ツールの使用
CovWrap は、gcov 出力を生成できる外部ツールです。 Windows および Linux システムで利用できます。
実践的なケース
単純な C 関数を考えてみましょう:
int sum(int a, int b) { return a + b; }
この関数をテストする単体テストを作成します:
#include "gtest/gtest.h" TEST(SumTest, PositiveValues) { EXPECT_EQ(sum(1, 2), 3); }
実行しますgtest を使用してテストを実行し、カバレッジ レポートを生成します:
gtest SumTest --gtest_output=xml
生成された XML レポートは、テストが sum
関数の次のコード行をカバーしていることを示します:
return a + b;
これは、テストのユースケースが関数のロジックをオーバーライドできることを示しています。
以上がC++ 関数の単体テスト カバレッジを測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。