【问题标题】:Get Incorrect test coverage during Vue.js unit test在 Vue.js 单元测试期间获取不正确的测试覆盖率
【发布时间】:2018-10-18 08:20:17
【问题描述】:

我正在尝试使用 karma+mocha+chai+webpack 进行 Vuejs 单元测试,并使用 istanbul 获取代码覆盖率。

问题来了,当我在要测试的组件中导入一些 utils 函数或其他一些组件时,我得到的代码覆盖率将包括那些 utils 代码。这不是我想要的。

在我要测试的组件中:

// src/home/mod_setting/upgrade_management/common/uploader.vue

import FileUploader from 'src/components/file_upload/index';
import Uploader from './uploader';
import logger from 'src/util/logger';

覆盖率报告将包括这些文件。

有解决办法吗?

【问题讨论】:

  • 但覆盖范围并没有错。
  • 我只希望它显示组件的覆盖范围,不包括组件导入的那些 util 文件。@ThomasKleßen
  • 你想要达到这个目的的原因是代码覆盖率高。但那将是一个谎言。只是生活在较低的分数。据我所知,没有合理的方法可以从伊斯坦布尔报告中排除文件。至少前一段时间我尝试了同样的方法并放弃了。从那时起,我只接受较低的覆盖分数

标签: unit-testing vue.js webpack mocha.js karma-runner


【解决方案1】:

这应该可以通过影响 karma conf 中的“预处理器”条目来实现:只有与此匹配的文件才会被监控覆盖范围。

查看以下问题 > https://github.com/karma-runner/karma-coverage/issues/13

在你的情况下

preprocessor: { 'src/!(util)/**/*.js' : 'coverage' }

应该做的伎俩

【讨论】:

    猜你喜欢
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2011-03-20
    相关资源
    最近更新 更多