33.5. テストが網羅する範囲の検証 #

《マッチ度[83.879781]》PostgreSQLソースコードは、カバレッジテストツールとともにコンパイルすることができるため、リグレッションテスト、あるいはその他のテストスイートによって、コードのどの部分が網羅されているかを評価することができます。 これは現在、GCCを使用してコンパイルした時にサポートされ、gcovおよびlcovプログラムを必要とします。 《機械翻訳》PostgreSQLのソースコードは、カバレッジテストのインストルメンテーションでコンパイルできるので、コードのどの部分がリグレッションテストやその他のテストスイートでカバーされているかを調べることができます。 これは現在、GCCでコンパイルするときにサポートされており、gcovlcovパッケージが必要です。

33.5.1. Coverage with Autoconf and Make #

典型的な作業の流れは以下のようになります。

./configure --enable-coverage ... OTHER OPTIONS ...
make
make check # or other test suite
make coverage-html

《マッチ度[]》そして、HTMLブラウザでcoverage/index.htmlを参照します。

《機械翻訳》lcovがない場合や、HTMLレポートよりもテキスト出力を好む場合は、以下のように実行できます。

make coverage

《マッチ度[66.588785]》make coverage-htmlの代わりに、これはテストに関連する各ソースファイルに対して.gcov出力ファイルを生成します。 (make coveragemake coverage-htmlは互いのファイルを上書きしますので、混用は混乱をひき起こすかもしれません) 《機械翻訳》make coverage-htmlの代わりに、テストに関連する各ソースファイルに対して.gcov出力ファイルを生成します。 (make coveragemake coverage-htmlは互いのファイルを上書きするので、それらを混在させると混乱する可能性があります。)

《マッチ度[75.586854]》カバレッジレポートを作成する前に複数の異なるテストを実行することができます。 実行カウントは累積されます。 実行カウントをテストの間でリセットしたければ、以下を実行してください。 《機械翻訳》カバレッジレポートを作成する前に、いくつかの異なるテストを実行できます。実行回数は累積されます。 テスト実行の間に実行カウントをリセットする場合は、次のように実行します。

make coverage-clean

《マッチ度[93.406593]》コードツリーの一部だけのカバレッジレポートが必要ならば、make coverage-htmlあるいはmake coverageコマンドをそのサブディレクトリで実行することができます。 《機械翻訳》コードツリーの一部に対してのみカバレッジレポートを作成する場合は、サブディレクトリでmake coverage-htmlまたはmake coverageコマンドを実行できます。

終了後に結果を削除するにはmake distcleanを実行します。

33.5.2. Coverage with Meson #

典型的な作業の流れは以下のようになります。

meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/
meson compile -C builddir/
meson test -C builddir/
cd builddir/
ninja coverage-html

《機械翻訳》次に、HTMLブラウザで./meson-logs/coveragereport/index.htmlを指定します。

《機械翻訳》カバレッジレポートを作成する前に、いくつかの異なるテストを実行できます。実行回数は累積されます。