【问题标题】:Exclude dependencies from JS Test Driver code coverage从 JS 测试驱动程序代码覆盖中排除依赖项
【发布时间】:2012-11-24 03:06:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript js-test-driver


    【解决方案1】:

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

    希望这会有所帮助。
    干杯,来自拉巴斯-玻利维亚

    【讨论】:

    • 希望他们能加入这个补丁。硬编码绝对路径对于多个开发人员来说是一场噩梦,他们对本地存储库有不同的偏好。
    【解决方案2】:

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

    here

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多