0

私は適度なサイズの科学的コードに取り組んでおり、それに包括的なテストを追加することを担当しています。googletest は正常に動作していますが、いくつか問題が発生しています。

  1. このコードは、ifdef ステートメントによる条件付きコンパイルを多用しています。コード全体を一度にテストする方法はありますか?それとも、1 つの定義セットでコンパイルし、そのセットをテストし、別のセットでコンパイルし、テストするだけでよいのでしょうか?
  2. コードカバレッジを計算する良い方法を見つけようとしています。誰もが gcov/lcov を使用することを提案しているようですが、有用な結果が得られません。インポートされたライブラリ (STL など) を含むカバレッジについて教えてくれるか、テストされているものではなく、テスト自体が実行されたことを示しているようです。また、テストされていないコードのビットではなく、テストされたコードのコード カバレッジを示しているだけです。そして、1 つだけをテストする必要があるときに、多くの関数をテストしていることを示しています。つまり、単一の関数に対して「8/8 行がカバーされ、14/14 関数がカバーされている」というような結果が得られます。

私は gcov に専念しておらず、誰かがより良いアイデアを持っていれば喜んで切り替えます。GoogleTest には、他のテスト フレームワークにはないように思われるいくつかの必要な機能があるため、かなり熱心に取り組んでいます。つまり、death テストとスレッド セーフです。

それはすべて意味がありますか?私は本当にこれをエレガントな方法で理解しようとしています。

4

0 に答える 0