他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

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

PostgreSQLソースコードは、カバレッジテストツールとともにコンパイルすることができるため、リグレッションテスト、あるいはその他のテストスイートによって、コードのどの部分が網羅されているかを評価することができます。 これは現在、GCCを使用してコンパイルした時にサポートされ、gcovおよびlcovパッケージを必要とします。

33.5.1. AutoconfとMakeでのカバレッジ #

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

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

そして、HTMLブラウザでcoverage/index.htmlを参照します。

lcovがない、あるいは、HTMLレポートよりもテキスト出力を好むなら、以下を実行してください。

make coverage

make coverage-htmlの代わりに、これはテストに関連する各ソースファイルに対して.gcov出力ファイルを生成します。 (make coveragemake coverage-htmlは互いのファイルを上書きしますので、混用は混乱をひき起こすかもしれません)

カバレッジレポートを作成する前に複数の異なるテストを実行できます。実行カウントは累積されます。 実行カウントをテストの間でリセットしたければ、以下を実行してください。

make coverage-clean

コードツリーの一部だけのカバレッジレポートが必要ならば、make coverage-htmlあるいはmake coverageコマンドをそのサブディレクトリで実行することができます。

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

33.5.2. 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を指定します。

カバレッジレポートを作成する前に複数の異なるテストを実行できます。実行回数は累積されます。