代码之家  ›  专栏  ›  技术社区  ›  vitaly-t

无法使用jest+puppeter获得测试覆盖率

  •  4
  • vitaly-t  · 技术社区  · 8 年前

    我有计划 Excellent.js 自动测试设置 jest puppeteer ,它成功运行了所有测试 can be seen on Travis CI .

    但经过许多配置调整,我一直无法使它报告正确的覆盖面。不管执行什么样的测试,覆盖率根本没有反映出来。

    库只包含一个JavaScript文件 excellent.js ,和我的 jest.config.js 是按照要求建立的保险范围:

    module.exports = {
        collectCoverage: true,
        collectCoverageFrom: [
            'src/excellent.js'
        ],
        testURL: 'http://localhost/',
        setupFiles: [
            './src/excellent.js'
        ]
    };
    

    这是 all the tests ,如果你先做的话都会通过 npm install ,然后 npm test .

    那我错过了什么?为什么我不能得到正确的报道?

    1 回复  |  直到 8 年前
        1
  •  5
  •   Brian Adams    8 年前

    发行

    大多数测试都使用puppeter,当代码在puppeter提供的浏览器中执行时,Jest代码覆盖率报告中不会反映代码的执行情况。

    解决方案

    没有一个测试需要puppeter,所以我将它们重构为Jest测试。代码覆盖率现在是准确的,目前是:

    excellent.js | 63.47 | 48.7 | 57.78 | 62.96

    我创造了一个 pull request with these changes .

    附加信息

    现在可以 generate code coverage reports for Puppeteer pages 还有一个图书馆可以帮忙 view them in Instanbul 但是这些代码覆盖率报告是独立于Jest生成的。

    要在puppeter页面中进行测试并使这些测试的覆盖率反映在Jest生成的报告中,需要将puppeter页面覆盖率报告与Jest覆盖率报告合并。