Next: , Previous: , Up: Debugging   [Contents][Index]


17.4 Test Coverage

testcoverライブラリーをロードして、コマンドM-x testcover-start RET file RETでコードをインストルメントすることにより、Lispコードのファイルにたいしてカバレッジテストを行なうことができます。コードを1回以上呼び出すことにより、テストが行なわれます。コマンドM-x testcover-mark-allを使用すれば、カバレッジが不十分な箇所が色付きでハイライト表示されます。コマンドM-x testcover-next-markは、次のハイライトされた箇所へポイントを前方に移動します。

通常、赤くハイライトされた箇所はそのフォームが完全に評価されたことが一度もないことを示し、茶色でハイライトされた箇所は常に同じ値に評価された(その結果にたいして少ししかテストされていない)ことを意味します。しかし、errorのように完全に評価するのが不可能なフォームにたいしては、赤いハイライトはスキップされます。(setq x 14)のように、常に同じ値に評価されることが期待されるフォームにたいしては、茶色のハイライトスキップされます。

難しいケースでは、テストカバレッジツールにアドバイスを与えるために、コードにdo-nothingマクロを追加することができます。

Macro: 1value form

formを評価してその値をリターンするが、テストカバレッジにたいしてformが常に同じ値だという情報を与える。

Macro: noreturn form

formを評価し、formが決してリターンしないという情報をカバレッジテストに与える。もしリターンした場合は、run-timeエラーとなる。

Edebugにもカバレッジテスト機能があります(Coverage Testingを参照)。これらの機能は部分的に重複しており、組み合わせることで明確になるでしょう。