国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

這篇具有很好參考價值的文章主要介紹了單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

引言

在前幾章我們深度講解了單元測試和集成測試的基礎(chǔ)知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用于衡量代碼被測試覆蓋的程度,幫助開發(fā)人員評估測試用例的質(zhì)量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Branch Coverage)、路徑覆蓋率(Path Coverage)等,不同類型的覆蓋率可以幫助開發(fā)人員更全面地了解測試用例對代碼的覆蓋情況,從而改進(jìn)測試策略和提高代碼質(zhì)量。

核心組件

本文介紹如何通過 Coverlet 在單元測試中使用代碼覆蓋率和使用 ReportGenerator 生成報表。

什么是Coverlet

CoverletGitHub 上的開源項目,可為 C# 提供跨平臺代碼覆蓋率框架,Coverlet.NET Foundation 的一部分,Coverlet 收集 Cobertura 覆蓋率測試運行數(shù)據(jù),用于生成報表。

什么是ReportGenerator?

ReportGenerator 將由 Cobertura 生成的覆蓋率報表轉(zhuǎn)換為各種格式的用戶可讀的報表。

代碼覆蓋率實戰(zhàn)

我們在之前的項目中創(chuàng)建了Sample.ApiSample.Repository用作我們單元測試和集成測試的Demo項目,接下來我們用這個項目來做一下單元測試覆蓋。

  • 創(chuàng)建xUnit測試項目
    然后看一下csprojXML文件
  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="xunit" Version="2.5.3" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
  </ItemGroup>

從上面可以看出xUnit的測試項目已經(jīng)默認(rèn)對coverlet.collector添加了支持

我們在講解在單元測試中使用依賴注入時,用Sample.Repository做的單元測試,我們把之前的代碼Copy一份,到新的測試項目,添加和講解依賴注入時一樣的配置。

然后添加對我們Sample.Repository的項目引用

NuGet\Install-Package Xunit.DependencyInjection -Version 9.1.0
NuGet\Install-Package Xunit.DependencyInjection.Logging -Version 9.0.0

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

可以看到我們項目基本成型了,但是Copy過來的代碼還是我們dotNetParadise.DependencyInjection測試依賴注入時那個類庫。

一個小tips:

鼠標(biāo)點擊我們的測試項目dotNetParadise.CodeCoverage->右鍵->同步命名空間

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

可以看到我們的命名空間已經(jīng)被正確替換

同步命名空間功能

  • 使用時機: 你想要通過將文件拖動到新文件夾重構(gòu)部分解決方案。

  • 操作原因: 你想要確保你的命名空間中的新文件夾結(jié)構(gòu)保持最新。

開始統(tǒng)計

我們可以通過CMD命令進(jìn)入測試項目類庫的內(nèi)

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

然后執(zhí)行下面這個命令

dotnet test --collect:"XPlat Code Coverage"

"XPlat Code Coverage" 參數(shù)是與 Coverlet 中的數(shù)據(jù)收集器對應(yīng)的易記名稱。 此名稱是必需的,但不區(qū)分大小寫。 若要使用 .NET 的內(nèi)置代碼覆蓋率數(shù)據(jù)收集器,請使用"Code Coverage"

看一下執(zhí)行完控制臺輸出

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

通過控制臺反饋我們得知了,生成了一個附件路徑在
~\TestResults\2515646c-5845-4bfb-ae14-7e0bf4617b84\coverage.cobertura.xml

作為 dotnet test 運行的一部分,生成的 coverage.cobertura.xml 文件輸出到 TestResults 目錄 。 該 XML 文件包含結(jié)果。 這是一個依賴于 .NET CLI 的跨平臺選項,非常適用于不可使用 MSBuild 的生成系統(tǒng)。

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

簡單解讀一下
cobertura.xml代碼覆蓋率報告,提供了關(guān)于代碼單元測試覆蓋率的詳細(xì)信息。其中包含了各種指標(biāo)和數(shù)據(jù),如以下幾點:

  • line-ratebranch-rate 分別表示語句覆蓋率和分支覆蓋率,均為 0.5,表示被測試覆蓋的比例為 50%。
  • lines-coveredlines-valid 分別表示被覆蓋的代碼行數(shù)和總代碼行數(shù)。
  • branches-coveredbranches-valid 分別表示被覆蓋的分支數(shù)和總分支數(shù)。
  • 在具體的類和方法級別,提供了各自的覆蓋率、復(fù)雜度等信息,以及每行代碼的覆蓋情況(hits 表示執(zhí)行次數(shù),branch 表示是否為分支語句,condition-coverage 表示條件覆蓋率)。

生成報告

上面提到了coverlet.collector是用來收集單元測試的指標(biāo)的真正的報告是用 ReportGenerator生成。

第一步要將 ReportGenerator NuGet 包安裝為 .NET 全局工具

dotnet tool install -g dotnet-reportgenerator-globaltool

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

有很多種生成報告的方法如 命令行,添加netconfig等大家可以自行選擇

下面用命令行來演示一下

導(dǎo)航到coverage.cobertura.xmlxml 報告文件下

reportgenerator -reports:"coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:html

輸出:

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

查看測試報告:

我的路徑:
TestResults\b5595744-2bb9-42ab-8c2e-60d544b4b04f\coveragereport

單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

最后

通過創(chuàng)建測試項目并使用 Coverlet 進(jìn)行代碼覆蓋率統(tǒng)計,我們可以得到詳細(xì)的覆蓋率報告。生成的 coverage.cobertura.xml 文件提供了各種指標(biāo)和數(shù)據(jù),如語句覆蓋率、分支覆蓋率等,幫助開發(fā)團隊評估代碼的測試覆蓋情況。

隨后,通過 ReportGenerator 工具生成報表,我們可以將覆蓋率數(shù)據(jù)轉(zhuǎn)換為易讀的報表形式,幫助團隊更直觀地了解測試覆蓋情況,進(jìn)一步優(yōu)化測試策略和提高代碼質(zhì)量。

通過以上實踐,我們能夠更有效地利用代碼覆蓋率工具,提升單元測試的質(zhì)量和效率,從而構(gòu)建更健壯的軟件系統(tǒng)。

??歡迎關(guān)注筆者公眾號一起學(xué)習(xí)交流,獲取更多有用的知識~
單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !文章來源地址http://www.zghlxwxcb.cn/news/detail-856191.html

  • 單元測試代碼覆蓋率
  • 本文完整源代碼

到了這里,關(guān)于單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 特性介紹 | MySQL 測試框架 MTR 系列教程(二):進(jìn)階篇 - 內(nèi)存/線程/代碼覆蓋率/單元/壓力測試

    作者:盧文雙 資深數(shù)據(jù)庫內(nèi)核研發(fā) 序言: 以前對 MySQL 測試框架 MTR 的使用,主要集中于 SQL 正確性驗證。近期由于工作需要,深入了解了 MTR 的方方面面,發(fā)現(xiàn) MTR 的能力不僅限于此,還支持單元測試、壓力測試、代碼覆蓋率測試、內(nèi)存錯誤檢測、線程競爭與死鎖等功能,因

    2024年02月03日
    瀏覽(24)
  • springboot項目使用Junit5 + mockito + jacoco 實現(xiàn)單元測試以及代碼覆蓋率檢查

    在創(chuàng)建springboot項目時會默認(rèn)添加spring-boot-starter-test依賴,其中已經(jīng)包含了junit、mockito依賴,根據(jù)springboot版本的不同junit和mockito的版本也會有所不同 先說一下各自功能: junit只說一點,junt4和junit5的注解不同,使用方式略有差異,其他不贅述了,基本用法都懂。 mockito是mock的

    2023年04月23日
    瀏覽(32)
  • IDFA 單元測試以及單元測試覆蓋率步驟

    IDFA 單元測試以及單元測試覆蓋率步驟

    1、新建java類 隨意選擇java類文件,新建一個Java類CountVowel,用來統(tǒng)計字符串中元音的個數(shù),代碼如下: 2、生成測試類 一)、對寫好的類新建測試類,有以下兩種方法: 將鼠標(biāo)光標(biāo)移動到類名上,使用 Alt+Enter 組合鍵,如下圖,選擇 Create Test ,從而新建一個測試類; 右鍵點

    2024年02月16日
    瀏覽(19)
  • java 單元測試覆蓋率調(diào)研

    java 單元測試覆蓋率調(diào)研

    根據(jù)網(wǎng)上的資料搜索發(fā)現(xiàn),現(xiàn)在常用的 java 單元測試覆蓋率工具主要有: Emma Cobertura Jacoco Clover(商用) 工具 Jacoco Emma Cobertura 原理 使用 ASM 修改字節(jié)碼 修改 jar 文件,class 文件字節(jié)碼文件 基于 jcoverage,基于 asm 框架對 class 文件插樁 覆蓋粒度 行,類,方法,指令,分支 行,類

    2024年02月12日
    瀏覽(29)
  • 如何計算單元測試的覆蓋率

    如何計算單元測試的覆蓋率

    單元測試的覆蓋率有:語句覆蓋率(即行覆蓋率)、分支覆蓋率、條件覆蓋率、分支條件覆蓋率、路徑覆蓋率等。 語句覆蓋率 所謂語句就是那些非分支、非判斷的語句。 計算公式:程序執(zhí)行到的語句總數(shù) / 全部語句的總數(shù) 分支覆蓋率 有判定語句的地方都會出現(xiàn)2個分支。

    2024年01月21日
    瀏覽(23)
  • Sonarqube-8.9版本測試單元測試覆蓋率

    Sonarqube-8.9版本測試單元測試覆蓋率

    junit testNG Spock Jacoco Cobertura SonarQube 不會運行測試或生成報告。要在分析中包含覆蓋結(jié)果,需要設(shè)置第三方覆蓋工具來生成報告并配置 SonarQube 以導(dǎo)入這些報告。 生成單元測試覆蓋率需要按照以下步驟操作: SonarQube 使用導(dǎo)入的覆蓋率報告中的覆蓋行和可執(zhí)行行(或要覆蓋的行

    2024年02月02日
    瀏覽(23)
  • 13.Springboot整合junit5單元測試與生成單元測試覆蓋率

    13.Springboot整合junit5單元測試與生成單元測試覆蓋率

    現(xiàn)在基本大公司都要求單元測試了,保證我們代碼得質(zhì)量,而我司更是要求覆蓋率要達(dá)到60%以上,所以搞一下。 這里有兩個方法: 1.使用maven自帶得test,idea右側(cè)maven模塊執(zhí)行項目下得test 2.使用cmd命令,在你的項目pom文件所在目錄 ,打開cmd,執(zhí)行如下: 結(jié)果如下:打開site文

    2024年02月16日
    瀏覽(23)
  • maven sonar 掃描單元測試覆蓋率為0,但是單元測試數(shù)不為0

    maven sonar 掃描單元測試覆蓋率為0,但是單元測試數(shù)不為0

    最初配置如下: sonar 掃描后的單元測試覆蓋率為0。但是但與測試數(shù)量不為0. 而配置的 sonar : 單元測試數(shù)基于 maven-surefire-plugin 插件 單元測試覆蓋率基于 jacoco-maven-plugin 插件。 發(fā)現(xiàn) maven 執(zhí)行后沒有 jacoco.exec 文件。導(dǎo)致 sonar 單元測試覆蓋率為 0。并且沒有下面的 jacoco 結(jié)果文

    2024年02月11日
    瀏覽(16)
  • 【Maven】單元測試、統(tǒng)計、覆蓋率相關(guān)插件使用介紹

    【Maven】單元測試、統(tǒng)計、覆蓋率相關(guān)插件使用介紹

    maven-surefire-plugin 是 maven 執(zhí)行單元測試的插件,不顯性配置也可以直接使用。 這個插件的 surefire:test 命令會默認(rèn)綁定 maven 執(zhí)行的 test 階段。 執(zhí)行結(jié)束后,默認(rèn)在 target/surefire-reports 目錄下會生成 txt 和 xml 兩種格式的結(jié)果,不利于直觀展示,需要結(jié)合其它插件一起使用。 如果

    2024年02月08日
    瀏覽(21)
  • Python單元測試:一步步了解測試框架、測試用例和覆蓋率分析

    在軟件開發(fā)中,單元測試是一個非常重要的環(huán)節(jié)。它可以確保你的代碼能夠正常運行,并且在將來的修改中不會出現(xiàn)問題。在Python中,單元測試是非常容易實現(xiàn)的。本文將介紹Python單元測試的所有知識點,包括測試框架,測試用例,測試裝置,測試套件和覆蓋率分析。 Pytho

    2024年02月04日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包