gpt4 book ai didi

code-coverage - 让 Karma、6to5ify 和 Istanbul 尔打球

转载 作者:行者123 更新时间:2023-12-04 10:24:43 24 4
gpt4 key购买 nike

我有 Browserify、6to5ify 和 Karma 玩得很好,成功运行了我的规范。但是,当我添加代码覆盖率时,事情就向南了。我尝试了几种方法:

  • 添加 browserify-istanbul转换为我的 karma.conf.js。但是,这会导致它尝试在我的规范文件上运行检测,它也会出现。
  • 运行coverage我的源文件上的预处理器。但是因为 Istanbul 尔(甚至 douglasduteil/karma-coverage#next )不读我的 6to5ify browserify 转换,它会在它尝试解析的第一个文件上立即崩溃(因为 import 语句),或者当我使用 karma-coverage#next 时,它不尊重 browser在我的 package.json 中映射(移动项目,将 Backbone 映射到 Exoskeleton)。

  • 现在我的 karma.conf.js看起来像这样:
    module.exports = function(karma){
    karma.set({
    frameworks: ["browserify", "mocha", "chai-sinon"],
    browserify: {
    debug: true,
    extensions: [".js", ".hbs"],
    transform: ["6to5ify", "hbsfy"]
    },
    reporters: ["dots", "osx", "junit", "coverage"],
    coverageReporter: {
    type: "text"
    },
    junitReporter: {
    outputFile: "spec/reports/test-results.xml"
    },
    preprocessors: {
    "src/javascript/**/*": ["coverage"],
    "spec/**/*": ["browserify"]
    },
    browsers: ["PhantomJS"],
    files: ["spec/unit/**/*Spec.js"],
    logLevel: "LOG_DEBUG",
    autoWatch: true
    });
    };

    我有点迷失如何让这一切一起工作。我尝试关注 these instructions ,但这不起作用,因为它没有遵循我的 browser package.json 中的节点.任何帮助将不胜感激。

    最佳答案

    所以,显然我需要browserify-istanbul ,我需要 browserify configure钩子(Hook),像这样:

    var to5ify = require('6to5ify');
    var hbsfy = require('hbsfy');
    var cover = require('browserify-istanbul');

    var coverOptions = {
    ignore: ['**/*Spec.js', '**/lib/*.js', '**/fixtures/*.hbs'],
    defaultIgnore: true
    }

    module.exports = function(karma){
    karma.set({
    frameworks: ["browserify", "mocha", "chai-sinon"],
    browserify: {
    debug: false,
    extensions: [".js", ".hbs"],
    configure: function(bundle){
    bundle.on('prebundle', function(){
    bundle
    .transform(to5ify)
    .transform(hbsfy)
    .transform(cover(coverOptions));
    });
    }
    },
    reporters: ["dots", "osx", "junit", "coverage"],
    coverageReporter: {
    type: "text"
    },
    junitReporter: {
    outputFile: "spec/reports/test-results.xml"
    },
    preprocessors: {
    "spec/**/*": ["browserify"]
    },
    browsers: ["PhantomJS"],
    files: ["spec/unit/**/*Spec.js"],
    logLevel: "LOG_DEBUG",
    autoWatch: true
    });
    };

    关于code-coverage - 让 Karma、6to5ify 和 Istanbul 尔打球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28236587/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com