【问题标题】:Intern coverage not including unloaded sources实习生覆盖不包括卸载的来源
【发布时间】:2018-04-20 07:37:00
【问题描述】:

Intern 测试不加载源文件(覆盖率为 0%)时,它们不会显示在 (lcov) 覆盖率报告中(在 nodejs 中运行)。

我认为,这通常是 JS 工具难以解决的问题。

例如Jest 有一个simple workaround

我正在为实习生寻找最简单的解决方法,最好使用 v3。

  • 既然 Intern 在掩护下使用istanbul,想知道--include-all-source 标志是否有效并且可以轻松通过?
  • 是否有让加载程序知道所有文件的标准方法?
  • 我有一些文件在 nodejs 中也不能很好地加载,可以包含它们吗?

【问题讨论】:

    标签: javascript code-coverage intern istanbul


    【解决方案1】:

    看一下 Intern 项目本身,在 config script 中有一个名为 coverage 的选项,覆盖范围定义为:

    应为代码检测的文件路径或 glob 数组 覆盖,或 false 完全禁用覆盖。这个性质 应该指向将要执行的实际 JavaScript 文件,而不是 预编译的源(覆盖结果仍将映射回 原始来源)。 将收集这些文件的覆盖率数据 即使实习生没有加载它们进行测试,也允许测试编写者查看哪些文件尚未测试 作家查看哪些文件尚未测试,以及覆盖率 在经过测试的文件上。当此值未设置时,实习生仍将 在全局覆盖变量上查找覆盖数据,它将 从远程会话请求覆盖数据。显式设置 覆盖范围为假将阻止实习生甚至检查覆盖范围 数据。 ?此属性替换 excludeInstrumentation 属性 在以前版本的实习生中使用,它充当过滤器而不是 而不是一个包容性的列表。

    对不起,大写,只是假设突出句子。 coverage 使用 glob 就像 istanbul 一样,因此您可以指定类似 coverage: ['src/**/*.js'] 的内容。

    我意识到这一点是因为 Intern 本身使用 this configuration 来收集报道,而且这似乎对他们有用。

    编辑:正如 cmets 中所指出的,此功能仅出现在实习生 v4 中。

    【讨论】:

    • coverage 选项是在 Intern 4 中启用覆盖率的正确方法,它将显示与覆盖率全局匹配的所有内容的覆盖率数据。实习生 3 没有内置模拟;它只会显示已加载文件的覆盖范围。
    • 正如我所说的
    • 我还有话要说,但早点按 Enter。 :)
    • 希望 Intern3 有一个简单的解决方法,但对这个答案很满意。谢谢你们。
    • 如果我找到一种通过伊斯坦布尔或实习生注入某些东西的方法,我会进一步研究并更新我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 2018-09-09
    • 2013-04-30
    相关资源
    最近更新 更多