javascript – Blanket.jsを実行する

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”というファイルにあり、これはコンソールウィンドウからノードmain.jsを呼び出して実行します。 “library.js”は同じレベルにあり、テストは “./unit-tests/tests.js”の子ディレクトリにあります。上記が実行されると、customerReporterコードは呼び出されません。理由がわかりません。

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

package.jsonで以下を指定しないと、blanketは「不正なファイル計測器のインジケータです。文字列、正規表現、関数、または配列である必要があります」をスローします。エラー。あなたが必要とするとすぐに( ‘毛布’);ノード内のどこからでも。

  "scripts": {
    "blanket": {
      "data-cover-flags": {
        "engineOnly":true
      }
    }
  }
元のURL:https://stackoverflow.com/questions/34325711/running-blanket-js

元のテキストを転載:javascript – Blanket.jsを実行する