2010-05-12 45 views
1

我有一個MVC Web應用程序,其中包含按照正常情況在TFS構建下運行的相關控制器測試。Web應用程序(MVC)程序集不工作的TFS和代碼覆蓋率

我可以看到測試運行,並通過在構建日誌和他們構建的部分出現在「/發佈詳細結果所有CPU」

我也有許多與相關測試其他組件,其在同一個版本中運行。測試通過,結果中顯示的細節和日誌很好。

我已經在構建腳本和testrunco​​nfig中啓用了代碼覆蓋。
除了Web應用程序,即使它看起來已經運行測試,覆蓋範圍也出現在所有程序集中。

有沒有什麼明顯的,我錯過了或某種工作,我需要做什麼? 我搜索了一段時間,還沒有找到答案。

有沒有人有使用TFS的MVC Web應用程序的代碼覆蓋?

+0

我遇到同樣的問題。問題似乎是程序集被放到CodeCoverage不理解的名爲_PublishedWebSites的文件夾中。我見過som hacks手動更改測試設置(XML編輯器),但它們似乎不可靠。 – Kimoz 2010-05-23 19:44:20

回答

2

閱讀之前發佈的文章後,我想我會嘗試一種替代方法。

看着文本編輯器中localrun.testconfig我看到的是其中包含的代碼覆蓋數據的組件是在下面的部分

<Regular> <CodeCoverageItem ... /> <CodeCoverageItem ... /> </Regular>

到web項目的唯一參考是部分:

<AspNet> <AspNetCodeCoverageItem id="..." name="..." applicationRoot="/" url="http://localhost:0/" /> </AspNet>

因此,要獲得代碼覆蓋率在TFS工作:
在VS IDE,雙擊localrun.testconfig,然後單擊代碼覆蓋範圍,然後通過單擊添加程序集...按鈕手動添加MVC程序集。你會得到一個關於重複裝配的警告信息,告訴它使用這個新文件。

這確實在localrun.testconfig幕後有什麼補充與MVC組件CodeCoverageItem 項,並從該文件中的代碼覆蓋率部分ASPNET部分。

這還有一個好處,就是每次運行測試時都不啓動本地Web服務器。

但它可能會對任何Watin類型測試和覆蓋率產生不利影響。

相關問題