当前位置:  开发笔记 > 编程语言 > 正文

运行Blanket.js

如何解决《运行Blanket.js》经验,为你挑选了1个好方法。

我正在使用Node中的Jasmine以编程方式测试一些代码.为此,我设置了以下内容:

function runTests() {
    var Jasmine = require('jasmine');
    var jasmine = new Jasmine();    

    jasmine.loadConfig({
        spec_dir: 'unit-tests',
        spec_files: [
            'tests-*.js'
        ]
    });

    var blanket = require('blanket')();

    var TerminalReporter = require('jasmine-terminal-reporter');
    var reporter = new TerminalReporter({});
    jasmine.addReporter(reporter);      

    jasmine.execute();  
}

runTests();

当这些测试运行时,我想获得代码覆盖的详细信息.在尝试这个时,我偶然发现了blanket.js.我的问题是,如何以编程方式输出代码覆盖率结果?使用上面的代码,我收到一个错误.错误只是说:

Error: Bad file instrument indicator.  Must be a string, regex, function, or array.

为什么?我究竟做错了什么?

更新

在我的package.son文件中,我有以下部分:

"config": {
  "blanket": {      
    "data-cover-flags": {
      "engineOnly":true
    }
  }      
}

我已将我的runTests功能更新为如下所示:

function runTests() {
    var Jasmine = require('jasmine');
    var jasmine = new Jasmine();    

    jasmine.loadConfig({
        spec_dir: 'unit-tests',
        spec_files: [
            'tests-*.js'
        ]
    });

    // Setup the coverage reporter
    var blanket = require("blanket")();
    var blanketReporter = function(coverageData) {
        console.log(coverageData);
    };
    blanket.customReporter = blanketReporter;

    blanket.instrument({
        inputFile: 'library.js'
    }, function(result) { });

    var TerminalReporter = require('jasmine-terminal-reporter');
    var reporter = new TerminalReporter({});
    jasmine.addReporter(reporter);      

    jasmine.execute();  
}

library.js

'use strict';

class Processor
{
    execute(vals) {
      let result = 0;
      vals.forEach(function(v) {
        result += v;
      });
      return result;
    }
}
module.exports = Processor;

上面的代码位于一个名为"main.js"的文件中,我通过node main.js从控制台窗口调用来运行它."library.js"处于同一级别,测试位于"./unit-tests/tests.js"的子目录中.上面运行时,永远不会调用customerReporter代码.我不明白为什么.



1> 小智..:

https://github.com/alex-seville/blanket/issues/248

如果你没有在package.json中指定下面的内容,则会抛出一个"Bad file instrument indicator.必须是字符串,正则表达式,函数或数组." 错误.一旦你需要('毯子'); 从节点内的任何地方.

  "scripts": {
    "blanket": {
      "data-cover-flags": {
        "engineOnly":true
      }
    }
  }

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有