Confucian

Confucian

Blockchain Macro Invoker
twitter
github
telegram

使用 Coverage Gutters で契約のコードカバレッジをより良くチェックする

スマートコントラクトの開発者にとって、コントラクトのテストの作成は非常に重要なスキルです。厳密な監査のように徹底する必要はないかもしれませんが、テストはすべての機能をカバーする必要があります。通常、カバレッジを確認するためにコードカバレッジが必要です。

ここでは、VS Code のCoverage Guttersというプラグインをおすすめします。このプラグインは、生成されたコードカバレッジレポートファイルに基づいて、テストでカバーされている / されていないコードを行の前に表示し、テストの作成を効率化します。

デモ#

筆者はFoundryを使用してスマートコントラクトプロジェクトを作成し、コントラクトのテストを行っています。

mkdir demo && cd demo
forge init

プロジェクトの初期化後、ディレクトリ構造は以下のようになります:

.
├── README.md
├── foundry.toml
├── lib
│   └── forge-std
├── script
│   └── Counter.s.sol
├── src
│   └── Counter.sol
└── test
    └── Counter.t.sol

6 directories, 5 files

Counter.sol とそれに対応する Counter.t.sol のテストファイルが自動的に生成されます。

Coverage Gutters を VS Code のプラグインマーケットでインストールしてください。

coverage-gutters

Foundry を使用して Code Coverage Report を生成します。

forge coverage --report lcov

すると、lcov.info というファイルが生成されます。

src/Counter.sol ファイルにウィンドウを移動し、下部のウォッチをクリックします。

watch

テストでカバーされているコード行の前に緑色のマーカーが表示され、下部にはカバレッジ率が表示されます。

shot-1

test/Counter.t.sol に関数を追加します。

function decrease() public {
	number--;
}

Code Coverage Report を更新します。

forge coverage --report lcov

追加された未テストの関数の前に赤色のマーカーが表示され、下部のカバレッジ率が 67% になります。

shot-2

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。