在我的 JS 测试驱动程序配置文件中,我通过将单元测试放在test
而不是load
.
但是,我不能为依赖项执行此操作,例如 Underscore.js 的 jQuery,因为它们需要在我的代码之前加载。
有没有办法解决?还是我只是处理缓慢的代码覆盖运行和统计混乱?
在我的 JS 测试驱动程序配置文件中,我通过将单元测试放在test
而不是load
.
但是,我不能为依赖项执行此操作,例如 Underscore.js 的 jQuery,因为它们需要在我的代码之前加载。
有没有办法解决?还是我只是处理缓慢的代码覆盖运行和统计混乱?
解决方案1:
正如格雷格所说,有一种使用“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:
此线程上还有一个 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 文件js/lib
”。(有了这个补丁,您不必担心 Windows 反斜杠)
我更喜欢这种方式,因为它是可移植的,因为它不依赖于您的应用程序的特定路径。
您可以在此处下载修补版本(在线程中查找评论 11)。
希望这可以帮助。
干杯,来自拉巴斯-玻利维亚
您可以通过在配置中的“args”下指定库来将库排除在代码覆盖范围之外。但是,请注意路径必须是绝对的。在撰写本文时,最新的 jsTestDriver 代码覆盖插件只会在路径是绝对路径时忽略库。
见这里。