ソフトウェアテストのカバレッジは、ソフトウェア開発において非常に重要です。このテストにより、ソフトウェアが予想どおりに実行されることが保証され、テストカバレッジは、2つのコードを補完する可能性をすべて確認します。多くの現代言語には、カバレッジのカバレッジを生成するライブラリまたはツールがありますが、C言語に「ネイティブ」ツールがあることをご存知ですか?
±42コードを返す簡単なコードから始めましょう:
<code class="language-c">#include <stdbool.h> int return_42(bool ret_neg) { if (ret_neg) return -42; return 42; }</code>
今では、簡単なテストファイルです:
<code class="language-c">#include <assert.h> #include <stdbool.h> #include <stdio.h> int return_42(bool ret_neg); int main() { assert(return_42(false) == 42); assert(return_42(true) == -42); puts("Nice"); return 0; }</code>
ここで、GCC/CCコンパイラと-fprofile-arcs
と-ftest-coverage
を使用してコードをコンパイルできます。
これにより、実行可能ファイルと拡張名.gcno
を備えたファイルが生成されます。
これらのファイルを作成した後、テストを実行し、操作後に拡張機能.gcda
を備えたファイルを作成します。
および.gcda
ファイル名で渡すことができます(通常は.gcno
と同じ名前があります。ファイル、同じ名前、同じ名前のファイル、同じ名前のファイル、ファイル、同じ名前、ファイル、同じ名前、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイル、ファイルは同じです名前、ファイルですが、異なる場合があります)。これにより、拡張子.c
を備えたファイルが生成されます。 GCOVはカバレッジに関する小さな要約を提供しますが、簡単なテスト以上のもの(たとえば、ライブラリに120を超えるテストがあります)では、結果をより直感的に表示する必要があります。 .gcov
、-c
、-d .
を使用してLCOVを実行します。 というファイルを生成し、カバレッジのカバレッジを印刷します。残念ながら、この概要では、どの関数がチェックされているかは表示されませんが、作成された-o foobar.info
ファイルを使用すると、LCOVを実行して、より読みやすいフォームの概要を印刷できます。ただし、まだ1パーセントしか得られず、どの線がチェックされているかを確認できないため、最後のステップを入力して、結果を視覚化しやすくします。 foobar.info
.info
genhtmlを使用して-l foobar.info
と
を使用することです)。 foobar.info
-o bar_html
python -m http.server -d bar_html
Clangを使用することもできますが、マークは変更されます。私はClangが好きではないので、最終結果は美しくないと感じていますが、私が試した限り、すべての機能をLLVMで実行する必要がありますLLVMツール。
最後に、Genhtmlには多くのカスタマイズされたマークがあります
わかりました、今日はここにあります、次回も会いましょう!
以上がC Cのテストカバレッジは、使用方法を教えてくれます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。