在我的JS測試驅動程序配置文件中,我將代碼覆蓋率計算中的單元測試排除在test
之外,而不是load
。從JS測試中排除依賴關係驅動程序代碼覆蓋範圍
但是,我不能這樣做的依賴關係,如Underscore.js的jQuery,因爲他們需要加載之前我的代碼。
有沒有辦法解決這個問題?或者我只處理慢速代碼覆蓋運行和統計混亂?
在我的JS測試驅動程序配置文件中,我將代碼覆蓋率計算中的單元測試排除在test
之外,而不是load
。從JS測試中排除依賴關係驅動程序代碼覆蓋範圍
但是,我不能這樣做的依賴關係,如Underscore.js的jQuery,因爲他們需要加載之前我的代碼。
有沒有辦法解決這個問題?或者我只處理慢速代碼覆蓋運行和統計混亂?
解決方案1:
有使用'args'參數作爲格雷格說的方式,但這種方式很不幸,你必須指定的完整路徑,因爲這(asuming視窗):
plugin:
- name: "coverage"
jar: "lib/coverage-1.3.2.jar"
module: "com.google.jstestdriver.coverage.CoverageModule"
#Here put the files that have to be ignored by coverage. Non-existent files do not harm.
args: "
D:\\apache\\htdocs\\XTIME\\js\\lib\\ext-all.js,
D:\\apache\\htdocs\\XTIME\\js\\lib\\jquery-1.7.2.min.js,
"
對於linux文件系統,您不必使用雙斜線。
解決方案2:
還有爲1.3.5 this thread修補的罐子,使您可以排除匹配正則表達式的文件,所以你必須:
plugin:
- name: "coverage"
jar: "lib/coverage-1.3.5.serve-patch.jar" #this patched jar allows to use excludesRegex
module: "com.google.jstestdriver.coverage.CoverageModule"
args: "excludesRegex: /js/lib/.*\\.js$"
的/js/lib/.*\.js$
正則表示「排除位於js/lib
之內的所有.js文件」。 (有了這個補丁,你不必擔心Windows的反斜槓)
我更喜歡這種方式,因爲它是可移植的,因爲它不依賴於你的應用程序的特定路徑。
您可以下載修補版本here(在線索中查找註釋11)。
希望這會有所幫助。
來自玻利維亞拉巴斯的歡呼聲
您可以通過在config中的「args」下指定代碼覆蓋率來排除庫。但是請注意,路徑必須是絕對路徑。在撰寫本文時,如果路徑是絕對路徑,最新的jsTestDriver代碼覆蓋插件將只會忽略這些庫。
請參閱here。
希望他們能夠把這個補丁帶進去。硬編碼絕對路徑是一個惡夢,多個開發者對他們的本地回購有不同的偏好。 – Travis 2012-12-13 21:54:40