Jest + Istanbul:仅从测试中直接收集功能的覆盖范围

时间:2018-12-13 22:11:58

标签: javascript unit-testing jestjs code-coverage istanbul

问题

是否可以将Istanbul / Jest配置为收集单独的代码覆盖率指标?

该度量标准应计算已访问的代码行/分支,但仅当该行作为对包含函数的直接调用的一部分执行时才计算在内。

动机

我想看看隔离测试功能(在真正的单元测试中)。

示例

对于下面的代码,我感兴趣的是看到将foo()函数的每一行计数为一次的指标(因为它是直接从测试中调用的);但是每个bar()的行都不计入,因为它不是由测试直接调用,而是传递调用。

.
    // test.js       
    it(`should count things well`, () => {
      expect(foo()).toEqual(3);
    });
    
    // code.js
  | function foo() {
1 |   const a = 1;
1 |   const b = bar();
1 |   return a + b;
  | }

  | function bar() {
0 |   return 2;
  | }

我尝试过的

伊斯坦布尔生成的coverage-final.json似乎不包含有关特定代码行 的任何元数据。它仅告诉是否访问了某些代码行/分支。我想知道是否可以使用某些命令标志来控制正在发射的覆盖信息并分析扩展数据。

0 个答案:

没有答案