大家好,我用Visual Studio在開發一個解決方案,想為裡面的專案逐漸加入單元測試。
階層如下,有 5 個專案,2 個用於測試Project1和Project2:
解決方案
|
|- Project1 (100 行)
|- Project2 (100 行)
|- Project3 (100 行)
|
|- Project1.UnitTests
|- Project2.UnitTests
我跟隨微軟網頁的教學,取得這個解決方案的程式碼覆蓋率,並將其輸出為文字檔:
dotnet tool install dotnet-reportgenerator-globaltool --tool-path tools
dotnet test --test-adapter-path:. --collect:"XPlat Code Coverage"
reportgenerator "-reports:./**/coverage.cobertura.xml" "-targetdir:Reports_Coverage" -reportTypes:TextSummary;
雖然文字檔有覆蓋率,但是計算未將Project3納入公式中...
想請教各位大大如何取得包括包含無測試的專案的程式碼覆蓋率?
謝謝。
您可以在執行 dotnet test 命令時,指定要包括的專案。以下是一個範例命令:
dotnet test Project1.UnitTests.csproj Project2.UnitTests.csproj Project3.csproj --collect:"XPlat Code Coverage"
這個命令會執行Project1.UnitTests、Project2.UnitTests和Project3專案的測試,並產生程式碼覆蓋率報告。請注意,您需要安裝 coverlet.collector 套件來支援 XPlat Code Coverage,您可以使用以下命令進行安裝:
dotnet tool install coverlet.collector -g
參考看看,也許這樣就可以確保報告中包括未被測試覆蓋的專案
If the project is not critical to the overall functionality of the solution, you may choose to exclude it from the coverage report altogether. This will ensure that the post accurately reflects the coverage of the code that is important to the solution.