Nyc没有显示数组中函数的范围

时间:2019-03-25 07:58:33

标签: node.js sinon istanbul nyc

我有一个函数列表,这些函数在代码中发生特定事件后会被过滤并执行。对所有函数进行评分并导出为如下数组

a+

与上面的代码相关的测试文件可以在下面的种子中。基本上,它加载拦截器数组并对其进行过滤以找到相关的动作并执行。所有相关测试均已通过,但覆盖率报告中未显示任何内容。

const interceptors = [   
  {
    recipeName: 'Test1',
    vendor: 'aaa',
    os: 'bbb',
    completed(name, output) {
      const tableText = output.getCommandText('test list');
      const parser = new TableParser(tableText);
      const list = parser.getBody();
      Device.updateOne({ name }, { $set: { list } }, done);
    },
  },      
  {
    recipeName: 'Test2',
    vendor: 'aaa',
    os: 'bbb',
    completed(name, output) {
      const users = [];
      const text = output.output;
      const matches = matchAll(text, /^user (\w+)/gm) || [];
      matches.forEach((m) => {
        users.push({ username: m[1] });
      });
      Device.updateOne({ name }, { $set: { users } }, done);
    },
  },
];

module.exports = interceptors;    

是否可以显示测试中执行的功能的覆盖范围?

1 个答案:

答案 0 :(得分:0)

万一其他人遇到类似的问题,我会发布我的解决方案

我发现这是mocha库的配置问题。默认情况下,mocha会在“ test”目录下查找测试文件,但在我的情况下,上面的测试文件位于子目录下,因此,mocha不会选择它。

我更改了摩卡咖啡的配置

来自“ test”:“ mocha --reporter dot”, 到“ test”:“ mocha test / ** / *。js --reporter dot”

问题解决了。