nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

AxoCoverというVisual Studio拡張のカバレッジツールが素晴らしい

無料です。以上です。じゃ、怒られるので少しだけ紹介を。

marketplace.visualstudio.com

某有償ツールのCoverageが命令網羅(いわゆるC0)しかとってくれなくて不満だったので探したら見つけたのがAxoCoverというVS拡張です。
VS Enterpriseにも素晴らしいCoverageツールが含まれているのですが、プロジェクトメンバー全員にEnterprise配れるほど裕福ではないので探していて見つけたのがAxoCoverになります。

無償ツールながらGUI統合されていて、分岐網羅(C1)のカバレッジが取得できます。

f:id:nuitsjp:20170803102806p:plain

使いかたは簡単です。
まずはVSを起動して「ツール」>「AxoCover」を選択すると新しいWindowが開かれます。
ソリューションエクスプローラーと同じPanelに開かれて、一瞬気が付きませんでしたが。

こんな感じの画面が開きます。

f:id:nuitsjp:20170803103518p:plain

自動的に開かれているソリューション内のテストケースが網羅されて表示されているでしょう。
テストはMSTest、NUnit、xUnitに対応しているようです。すばらしい!

さて、それではおもむろにテスト対象を選択し、Coverボタンをポチっとしましょう。

f:id:nuitsjp:20170803103912p:plain

するとテストが実行されて、結果が表示されます。

f:id:nuitsjp:20170803103955p:plain

それでは左側のメニューのReportを選択しましょう。
初めて起動したときは非常に重いかもしれませんが、2回目以降はサクサク動きます。

さて、つぎの画像の赤で囲った場所をご覧ください。

f:id:nuitsjp:20170803104209p:plain

左が分岐網羅の数値(カバレッジ率と未テスト個所数)で、右側が命令網羅の数値になります。
もちろんドリルダウンで該当箇所を探索することもできますし、該当箇所を選択するとコードまでナビゲートされます。

f:id:nuitsjp:20170803104633p:plain

左にポチが二つ付いているのが見て取れると思います。
AssociatedObject.CurrentPageと、PreviousPageがnullの場合がテストされていないのだと思います。

また、カバレッジ結果はHTML形式でExportすることも可能です。
次の画面の上部にある「Export」を選択しましょう。

f:id:nuitsjp:20170803104852p:plain

すると次のようにレポートが表示されます。

f:id:nuitsjp:20170803104954p:plain

しかも対象クラスを選択すると、ちゃんとコードがカバレッジ結果と共にグラフィカルに表示されます。

f:id:nuitsjp:20170803105105p:plain

素晴らしい!
以上です。