• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C#代碼覆蓋率實踐-vsinstr和OpenCover

    發表于:2014-07-07來源:csdn作者:rickyqiuTX點擊數: 標簽:軟件測試
    最近接觸的項目涉及到C#開發的應用,測試過程中我們需要去分析C#的代碼覆蓋率,問了一些人,在網上也搜了一些,零碎的找到很多資料,但是都不是很完整,實際使用的過程中還是走

      最近接觸的項目涉及到C#開發的應用,測試過程中我們需要去分析C#的代碼覆蓋率,問了一些人,在網上也搜了一些,零碎的找到很多資料,但是都不是很完整,實際使用的過程中還是走了不少彎路。到現在為止,有兩種可行的方案試驗成功了,這里寫出來給大家分享下??赡芎芏嗳硕加眠^,就當是個整理吧。

      方法一:使用VS自帶的vsinstr工具

      準備條件:安裝VS2010或者VS2012。

      基本的操作步驟,主要是三個。

      1. 對被測的DLL進行插樁。

      "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Performance Tools\x64\vsinstr" -coverage "D:\xxx.dll"

      原來的dll自動被更名為 *.orig,相當于是一個備份??梢钥吹奖徊鍢兜腄LL尺寸有所增加。

      2. 啟動coverage數據監控和收集。

      start vsperfmon -coverage -output:"D:\xyz.coverage" /CS /user:everyone

      3. 運行被測的程序,或者等待被執行。

      4. 停掉被執行的程序,可以直接關閉應用。

      5. 停止coverage監聽,生成數據。

      vsperfcmd /shutdown

      6. 找到D:\xyz.coverage,雙擊可以直接用VS打開查看。 顯示的是block覆蓋率,如果有source code可以對著代碼查看。

      方法一小結:

      1. 這種方式除了最后查看報告,不需要啟動VS,也不限制被測的代碼如何被測試,可以手工也可以其他自動化程序。

      2. 目前來看需要逐個DLL插樁,對于exe文件沒有嘗試。

      3. 生成的覆蓋率報告是二進制文件,需要在VS里面查看。

      4. 目前看到的是只有block級別的覆蓋率數據,沒有找到line級別的。

      方法二:使用免費的OpenCover工具

      準備條件:

      1. 安裝OpenCover工具,可以直接下載msi或者zip包

      2. 下載ReportGenerator工具,用于將OpenCover生成的XML報告轉換成更加可讀的HTML報告。

      具體的步驟:

      1. 在VS里面隨便用C#寫了一小段代碼,包含了一個分支,用于查看覆蓋和未覆蓋的情況。編譯成 ConsoleApplicaiton1.exe

      2. 通過OpenCover將被測的ConsoleApplicaiton1.exe在命令行啟動起來,加上相關的參數。

      -output:c2.xml 指明將生成的報告文件名。

      -targetdir: 告訴OpenCover這個exe對應的PDB在哪兒。兩種方法PDB文件都是必須的。

      -register 不是很清楚用途,但是是必須的,第一次沒加這個參數覆蓋率數據出不來。

      更詳細的參數請查看OpenCover的手冊。

      具體的命令:

      OpenCover.Console.exe -register -target:"C:\Users\rickyqiu\Documents\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe" -output:c2.xml -targetdir:"C:\Users\rickyqiu\Documents\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug"

      執行的結果如下面的cmd窗口。程序很簡單,所以很快跑完了,顯示了一個覆蓋率的摘要。

      這樣就可以得到指定的報告文件 c2.xml了。

      3. 可以用ReportGenerator工具生成HTML的報告便于查看。

    原文轉自:http://blog.csdn.net/superqa/article/details/9060521

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>