从JS Test Driver代码覆盖中排除依赖关系

时间:2012-08-09 16:00:54

标签: javascript js-test-driver

在我的JS测试驱动程序配置文件中,我将代码覆盖率计算中的单元测试排除在test而不是load之下。

但是,对于依赖项,我不能这样做,比如jQuery的Underscore.js,因为它们需要在我的代码之前加载。

这有什么办法吗?或者我只处理慢速代码覆盖运行和统计杂乱?

2 个答案:

答案 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