2

在我的 JS 测试驱动程序配置文件中,我通过将单元测试放在test而不是load.

但是,我不能为依赖项执行此操作,例如 Underscore.js 的 jQuery,因为它们需要在我的代码之前加载。

有没有办法解决?还是我只是处理缓慢的代码覆盖运行和统计混乱?

4

2 回答 2

3

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

希望这可以帮助。
干杯,来自拉巴斯-玻利维亚

于 2012-11-23T19:06:24.913 回答
1

您可以通过在配置中的“args”下指定库来将库排除在代码覆盖范围之外。但是,请注意路径必须是绝对的。在撰写本文时,最新的 jsTestDriver 代码覆盖插件只会在路径是绝对路径时忽略库。

这里

于 2012-08-26T22:45:27.670 回答