在我的JS测试驱动程序配置文件中,我将代码覆盖率计算中的单元测试排除在test
而不是load
之下。
但是,对于依赖项,我不能这样做,比如jQuery的Underscore.js,因为它们需要在我的代码之前加载。
这有什么办法吗?或者我只处理慢速代码覆盖运行和统计杂乱?
答案 0 :(得分:3)
解决方案1:
有一种方法可以像Greg一样使用'args'参数,但不幸的是你必须指定完整路径,就像这样(假设Windows):
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:
在this thread上还有一个1.3.5的修补jar,它允许你排除与正则表达式匹配的文件,所以你有:
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 :(得分:1)
您可以通过在" args"下指定库来排除代码覆盖率。在配置中。但请注意,路径必须是绝对的。在撰写本文时,如果路径是绝对的,最新的jsTestDriver代码覆盖插件将只忽略库。
请参阅here。