2009-09-16 80 views
2

我有一個相當醜陋和大型的JavaScript文件,我從我厭惡的開發者那裏繼承下來。有很多死代碼,我發現我花了很多時間重構甚至沒有被調用的函數。用於IE的代碼覆蓋率工具

理想情況下,我只是想的東西,可以扎入JS引擎和跟蹤何時以及有多少次函數被調用的。

在FF,我可以步行window對象獲得的功能列表,並動態地包裹他們都在將登錄調用它們,然後調用函數作爲正常的方法。

不幸的是,在IE瀏覽器,我不能用這個,因爲我似乎無法找到一種方式來獲得的已加載的所有功能的列表。我不能在FF中運行這個應用程序,因爲它是可怕的瀏覽器特定。在最後計數有138行包含「新的ActiveXObject(...)」

幫助,或者與一個工具,可以做到這一點,或者至少,一種方式來獲得IE7的功能列表從用戶腳本加載。

感謝 -c

回答

4

嘗試JSCoverage

JSCoverage是一個度量 JavaScript程序的代碼覆蓋率的工具。

JSCoverage工程通過插在網頁中使用的 JavaScript代碼。 收集代碼覆蓋範圍統計信息 ,同時在Web瀏覽器中執行儀器化JavaScript代碼 。

如果您將JSCoverage服務器設置爲以HTTP代理的身份運行並將瀏覽器配置爲通過它,則可以即時完成檢測。使用它

一種方法是:

  1. 啓動JSCoverage服務器代理模式:
jscoverage-server --proxy --verbose
  • 你使用localhost配置瀏覽器: 8080作爲HTTP代理。
  • 添加下面的書籤,並確保jscoverage相對路徑是正確的:
  • javascript:void(window.open('jscoverage/jscoverage.html'))
  • 運行測試。
  • 運行書籤。它會彈出一個新窗口,顯示覆蓋率結果。
  • +0

    我無法弄清楚如何使用這個系統。 它充滿了幀和ajax。 – CaffGeek 2009-09-16 14:25:15

    +0

    我會在我的答案中添加更多詳細信息。 – 2009-09-16 14:33:28

    +0

    看起來好像會起作用,不幸的是,我無法更改我的瀏覽器代理設置......我們在這裏被鎖定。 – CaffGeek 2009-09-16 15:08:05