2012-08-09 44 views
2

在我的JS測試驅動程序配置文件中,我將代碼覆蓋率計算中的單元測試排除在test之外,而不是load從JS測試中排除依賴關係驅動程序代碼覆蓋範圍

但是,我不能這樣做的依賴關係,如Underscore.js的jQuery,因爲他們需要加載之前我的代碼。

有沒有辦法解決這個問題?或者我只處理慢速代碼覆蓋運行和統計混亂?

回答

3

解決方案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)。

希望這會有所幫助。
來自玻利維亞拉巴斯的歡呼聲

+1

希望他們能夠把這個補丁帶進去。硬編碼絕對路徑是一個惡夢,多個開發者對他們的本地回購有不同的偏好。 – Travis 2012-12-13 21:54:40

1

您可以通過在config中的「args」下指定代碼覆蓋率來排除庫。但是請注意,路徑必須是絕對路徑。在撰寫本文時,如果路徑是絕對路徑,最新的jsTestDriver代碼覆蓋插件將只會忽略這些庫。

請參閱here