私のマイクロソフトベースの開発環境は次のようになります: - 10 個のプロジェクトに分割された巨大なネイティブ C++ コードベース - 各プロジェクトには依存するテスト プロジェクト (GoogleTest ユニット テスト) があり、テストするソースは単に参照されます。
vsinstr と vsperfmon (実行可能ファイルと dll を計測/監視するためのビジュアル スタジオ ツール) を使用してカバレッジ レポートを生成しましたが、期待したほど満足のいくものではありませんでした。テスト対象のソース (テスト スイート実行可能ファイル Sample_Project_Test.exe を計測しました)。
たとえば、次のようなメソッドがある場合:
(Sample_Project/add_ints.cpp)
int add(int a, int b){
return a+b;
}
int add2(int a, int b){
if (a == b)
return a * 2;
else
return a+b;
}
単体テストは次のようになります。
(Sample_Project_Test/int_adds_tests.cpp)
TEST(AddTest, ReturnsCorrectSum)
{
EXPECT_EQ(4, add(2,2));
}
add_ints.cpp の add-part のみが測定され、add2 は触れられていないため完全に削除されているように見えるため、100% のライン カバレッジが得られます。カバレッジ全体が間違っていることを理解していない限り、これは正しくないようです?