??在Visual Studio 2017 企業(yè)版中,微軟給我們帶來(lái)了Live Unit Testing,這是一套可以實(shí)時(shí)反饋單元測(cè)試覆蓋和通過(guò)情況的黑科技,有了它,我們寫用例不需要頻繁的運(yùn)行測(cè)試,也不需要頻繁的運(yùn)行覆蓋率檢查,一切都可以在改變代碼后實(shí)時(shí)反饋給我們。
啟動(dòng)
??在Visual Studio 2017 企業(yè)版中,可以通過(guò)如下方式啟動(dòng)Live Unit Testing:

如果你發(fā)現(xiàn)啟動(dòng)Live Unit Testing后沒(méi)有任何反應(yīng),別緊張,多半是你沒(méi)有引入MSTest V2的類庫(kù)(TestPlatform.TestFramework和TestFramework.Extensions)并移除MSTest的類庫(kù)(QualityTools.UnitTestFramework)
Live Unit Testing需要實(shí)時(shí)分析代碼,運(yùn)行代碼,顯然對(duì)性能會(huì)有極大的需求,因此Visual Studio提供了暫停功能,暫停時(shí)收集的數(shù)據(jù)會(huì)緩存起來(lái),恢復(fù)后可以更快的完成代碼分析。
反饋代碼覆蓋情況
??當(dāng)我們成功啟動(dòng)Live Unit Testing后,在代碼中可以看到:

其中
紅色的叉:當(dāng)前行至少被一條未通過(guò)的用例覆蓋
綠色的鉤:當(dāng)前行被覆蓋,且覆蓋的用例都通過(guò)
藍(lán)色的杠:當(dāng)前行未被用例覆蓋
Live Unit Testing分析代碼會(huì)需要一定時(shí)間,因此我們可能會(huì)短暫的看到如下處理中的等待符號(hào):

??當(dāng)Live Unit Testing分析完代碼后,我們可以通過(guò)點(diǎn)擊代碼行前的符號(hào)快速的看到哪些用例通過(guò),哪些用例失敗,失敗的原因是什么等等,還可以進(jìn)一步快速定位到用例位置,便于修改用例。
測(cè)試框架支持
??目前Live Unit Testing支持主流的三個(gè)測(cè)試框架:MSTest、xUnit.net、NUnit,支持情況如下:

其他
??鑒于性能考慮,Live Unit Testing支持在解決方案中選擇部分項(xiàng)目或者類做代碼分析,同時(shí),Live Unit Testing和Test Explorer是同步的,在代碼編輯窗口反饋的同時(shí),Test Explorer也會(huì)實(shí)時(shí)更新。如果需要更多的Live Unit Testing配置,可以到Tools/Options/Settings中搜索Live Unit Testing。
2017-11-06 22:20:31