[XUnit] Collect coverage UT

Các nuget package yêu cầu

  • xUnit (>= v2.4.1)
  • xUnit.runner.visualstudio (>= v2.4.1)
  • Moq (>= v4.13.1)
  • dotnet-reportgenerator-cli (>= 4.3.6)
  • coverlet.collector (>= 3.1.2)

Lấy coverage cho 1 project cụ thể

  • Mở powershell
  • cd tới project Unit test bạn cần
  • Run câu lệnh bên dưới
dotnet test --collect:"XPlat Code Coverage" YourUnitTestProject.Tests.csproj --logger trx -c local /p:CoverletOutputFormat=cobertura

Màn hình powershell sẽ hiện massage như sau

Bắt đầu execution code coverage

Sau khi chạy xong sẽ xuất hiện đường dẫn của file result. Bạn lưu lại 2 file này

Đường dẫn file result

Cài đặt Global genereate Report

dotnet tool install --global dotnet-reportgenerator-globaltool --version 5.1.9

Trích xuất file coverage.cobertura.xml ra HTML Report

Bạn run câu lệnh bên dưới, nhớ thay đường dẫn thành của mình

reportgenerator -reports:D:\path-to-your-project\YourUnitTestProject.Tests\TestResults\d64fb90b-bdc5-496a-a832-d3ab7c914cac\coverage.cobertura.xml -targetdir:D:\Result\UT1\report20222410 -reporttypes:HtmlInline_AzurePipelines

Kết quả sau khi chạy xong bạn đi vào D:\Result\UT1\report20222410 sẽ thấy được rất nhiều file html

Search file mình cần tìm và open nó lên

Kết quả như sau

Số phần trăm coverage Unit Test

F G+ T

tuandph

Khởi đầu với .NET từ năm 2013 đến nay. Hiện tại mình đang làm full-stack developer. Yêu thích lập trình & chia sẽ kiến thức. Thời gian rảnh thường làm những tool vui vui và viết lách kể lệ sự đời.