Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

AltCoverでVB.NETのコードカバレッジが取れるか?

結論

OpenCoverアーカイブモードに入ってしまった。後継として推されていたAltCoverでも、OpenCoverと同じように行単位のC1が取れそう。

手順

QuickStart Guideに記載の通り、テストケースの格納されているプロジェクト中でdotnet add package AltCoverする。ソリューションファイルに対してdotnet.exe sln .\XUnit.AltCover.sln add package AltCoverのようにはできないので注意。

そのうえで、add package AltCoverしたプロジェクトに対してテストケースを以下のように実行する。/p:AltCoverLocalSource=trueを忘れず指定すること。指定しないと、Xunitがぜんぶカバレッジの取得対象になってしまい、カバレッジを保存するcoverage.xmlが2MBくらいになってしまう。

dotnet test /p:AltCover=true /p:AltCoverPathFilter="?\.vb" /p:AltCoverLocalSource=true .\XUnit.AltCover.sln

ReportGeneratorで以下のようにレポートを出力すれば、HTML形式のレポートが得られる。

reportgenerator.exe -reports:.\XUnit.AltCover.MSBuild\coverage.xml -targetdir:.\XUnit.AltCover.MSBuild\AltCover

コードおよび結果

テストクラスの内容はCoverletのときに使ったものと同じ。得られたXMLのレポートファイルは以下。

AltCover VB.NET coverage result · GitHub

評価

結果、VB.NETのプログラムのカバレージも取得できた。カバレッジの内容はOpenCoverと同じになった。

f:id:satob:20211217002619p:plain f:id:satob:20211217002629p:plain