如何在伊斯坦布尔覆盖率报告中忽略函数 _interopRequireDefault?

Posted

技术标签:

【中文标题】如何在伊斯坦布尔覆盖率报告中忽略函数 _interopRequireDefault?【英文标题】:How to ignore function _interopRequireDefault in istanbul coverage report? 【发布时间】:2016-07-22 22:02:04 【问题描述】:

Babel 编译我的模块以包含以下行:

function _interopRequireDefault(obj)  
    return obj && obj.__esModule ? obj :  default: obj ; 

据我所知,是deal with CommonJS imports。

我怎样才能忽略这条线,使其不在我的覆盖率报告中?我的分支覆盖率通常会受到这条线的影响。

我无法添加内联忽略注释,例如/* istanbul ignore next */,因为我无法直接在这一行上添加它。将注释添加到文件的开头会将其添加到类定义之前。

我也尝试使用 Babel 的 auxiliaryCommentBefore 选项在编译行之前添加注释,但它几乎在代码中的任何地方都添加了注释,因此无法使用。

在分析覆盖率时有没有办法忽略这一行?

【问题讨论】:

你使用 grunt/gulp/whatever 吗? @smnbbrv 我们使用 Gulp 和 Browserify。我们使用的测试框架是 Jasmine。 我们使用替换插件简单地将 grunt 中的这些行替换为带有 /* istanbul ignore next */ 的行。定义一个合适的模式,它工作得很好。 【参考方案1】:

我们最终使用了isparta,以便在转译之前使用 ES6 代码进行覆盖,这实际上更准确(我们想检查我们实际编写的代码的覆盖率,而不是编译的代码)。谢谢您的帮助。 :)

【讨论】:

以上是关于如何在伊斯坦布尔覆盖率报告中忽略函数 _interopRequireDefault?的主要内容,如果未能解决你的问题,请参考以下文章

如何测试graphql apollo组件?如何在 compose() 中获得完整的覆盖?

如何从代码覆盖率伊斯坦布尔记者中排除模拟文件

伊斯坦布尔覆盖 HTML 报告中的嵌套目录

Angular中伊斯坦布尔覆盖报告中的标记异常

重新映射伊斯坦布尔不正确的覆盖率报告

伊斯坦布尔覆盖与 mocha 测试用例仅显示规范文件(测试文件)的覆盖率报告