Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Karma Browserify和#x2B的问题;业力覆盖_Javascript_Karma Runner_Browserify_Karma Coverage_Isparta - Fatal编程技术网

Javascript Karma Browserify和#x2B的问题;业力覆盖

Javascript Karma Browserify和#x2B的问题;业力覆盖,javascript,karma-runner,browserify,karma-coverage,isparta,Javascript,Karma Runner,Browserify,Karma Coverage,Isparta,我在获取karma browserify以使用karma覆盖范围时遇到问题。我花了很多时间试图找出问题所在,但没有找到解决办法 这是我的.js文件(函数不做任何事情;它们只是测试代码覆盖率的模拟): 这是我的测试文件: // src/spec/utilities/form-validation.spec.js import formUtilities from '../../js/utilities/form-validation'; describe('Form validation fu

我在获取
karma browserify
以使用
karma覆盖范围
时遇到问题。我花了很多时间试图找出问题所在,但没有找到解决办法

这是我的.js文件(函数不做任何事情;它们只是测试代码覆盖率的模拟):

这是我的测试文件:

// src/spec/utilities/form-validation.spec.js

import formUtilities from '../../js/utilities/form-validation';

describe('Form validation functions', function () {

  it('Should return "true"', function () {
    expect(formUtilities.includedInTest()).toBe(true);
  });

  it('Should return "true"', function () {
    expect(formUtilities.alsoIncludedInTest()).toBe(true);
  });

});
最后,这是我的karma.conf:

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['browserify', 'jasmine-jquery', 'jasmine'],
    files: [
      'bower_components/jquery/dist/jquery.js',
      'bower_components/jquery-validation/dist/jquery.validate.js',
      'src/js/**/*.js',
      'src/spec/**/*.spec.js'
    ],
    exclude: [
      'src/js/index.js'
    ],
    preprocessors: {
      'src/js/**/*.js': ['browserify', 'coverage'],
      'src/spec/**/*.spec.js': ['browserify']
    },
    browserify: {
      debug: true,
      transform: [
        ['babelify', { presets: ['es2015'] }]
      ]
    },
    reporters: ['mocha', 'coverage'],
    mochaReporter: {
      colors: {
        success: 'green',
        info: 'bgBlue',
        warning: 'cyan',
        error: 'bgRed'
      },
      symbols: {
        success: '√',
        info: '#',
        warning: '!',
        error: 'x'
      }
    },
    coverageReporter: {
      instrumenters: { isparta: require('isparta') },
      instrumenter: {
        'src/**/*.js': 'isparta'
      },
      dir: 'coverage',
      subdir: '.',
      reporters: [
        { type: 'html', dir: 'coverage' },
        { type: 'text-summary' }
      ],
      check: {
        global: {
          statements: 90,
          branches: 90,
          functions: 90,
          lines: 90
        },
        each: {
          statements: 90,
          branches: 90,
          functions: 90,
          lines: 90
        }
      },
      watermarks: {
        statements: [50, 75],
        functions: [50, 75],
        branches: [50, 75],
        lines: [50, 75]
      }
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['PhantomJS'],
    singleRun: false,
    concurrency: Infinity
  });
};
此配置产生以下结果:

==== Coverage summary ====
Statements   : 100% ( 1/1 )
Branches     : 100% ( 2/2 )
Functions    : 100% ( 0/0 )
Lines        : 100% ( 1/1 )
=============
这显然是错误的,因为我在“formvalidation.js”上有四个函数,我正在测试其中两个。但是根据总结报告,没有需要测试的功能

coverage/index.html
中的这一行显示了
karma coverage
只解析了一行内容:

我还在transform数组中尝试了“browserify istanbul”(并从“coverageReport”中删除了Instrumenter):

但这会产生一个错误:

18 08 2017 15:50:14.617:ERROR [karma]: TypeError: Cannot read property 'start' of undefined
    at /Users/gferraz/Sites/OAA-Refactor/node_modules/istanbul/lib/object-utils.js:59:44
    at Array.forEach (native)
    at Object.addDerivedInfoForFile (/Users/gferraz/Sites/OAA-Refactor/node_modules/istanbul/lib/object-utils.js:58:37)
    at Collector.fileCoverageFor (/Users/gferraz/Sites/OAA-Refactor/node_modules/istanbul/lib/collector.js:94:15)
    at /Users/gferraz/Sites/OAA-Refactor/node_modules/istanbul/lib/collector.js:108:30
    at Array.forEach (native)
    at Collector.getFinalCoverage (/Users/gferraz/Sites/OAA-Refactor/node_modules/istanbul/lib/collector.js:107:22)
    at checkCoverage (/Users/gferraz/Sites/OAA-Refactor/node_modules/karma-coverage/lib/reporter.js:148:33)
    at /Users/gferraz/Sites/OAA-Refactor/node_modules/karma-coverage/lib/reporter.js:257:32
    at Array.forEach (native)
    at Collection.forEach (/Users/gferraz/Sites/OAA-Refactor/node_modules/karma/lib/browser_collection.js:93:21)
    at /Users/gferraz/Sites/OAA-Refactor/node_modules/karma-coverage/lib/reporter.js:247:16
    at Array.forEach (native)
    at CoverageReporter.onRunComplete (/Users/gferraz/Sites/OAA-Refactor/node_modules/karma-coverage/lib/reporter.js:246:15)
    at Server.<anonymous> (/Users/gferraz/Sites/OAA-Refactor/node_modules/karma/lib/events.js:13:22)
    at emitTwo (events.js:111:20)
18 08 2017 15:50:14.617:错误[karma]:类型错误:无法读取未定义的属性“start”
at/Users/gferraz/Sites/OAA-Refactor/node_-modules/伊斯坦布尔/lib/object-utils.js:59:44
at Array.forEach(本机)
在Object.addDerivedInfoForFile(/Users/gferraz/Sites/OAA Refactor/node_modules/伊斯坦布尔/lib/Object utils.js:58:37)
位于Collector.filecoverage for(/Users/gferraz/Sites/OAA Refactor/node_modules/伊斯坦布尔/lib/Collector.js:94:15)
at/Users/gferraz/Sites/OAA-Refactor/node_-modules/伊斯坦布尔/lib/collector.js:108:30
at Array.forEach(本机)
在Collector.getFinalCollege(/Users/gferraz/Sites/OAA Refactor/node_modules/伊斯坦布尔/lib/Collector.js:107:22)
在checkCoverage(/Users/gferraz/Sites/OAA Refactor/node_modules/karma coverage/lib/reporter.js:148:33)
在/Users/gferraz/Sites/OAA-Refactor/node_-modules/karma-coverage/lib/reporter.js:257:32
at Array.forEach(本机)
在Collection.forEach(/Users/gferraz/Sites/OAA Refactor/node_modules/karma/lib/browser_Collection.js:93:21)
at/Users/gferraz/Sites/OAA-Refactor/node_-modules/karma-coverage/lib/reporter.js:247:16
at Array.forEach(本机)
在CoverageReporter.onRunComplete(/Users/gferraz/Sites/OAA Refactor/node_modules/karma coverage/lib/reporter.js:246:15)
在服务器上。(/Users/gferraz/Sites/OAA-Refactor/node_-modules/karma/lib/events.js:13:22)
两点钟(events.js:111:20)

关于如何修复配置文件有什么建议吗?

这篇文章正确答案中建议的配置帮助了我:

现在我在html报告
error[coverage]:TypeError:无法读取未定义的
的属性“text”(意思是我想为报告生成的html文件没有生成),它似乎与伊斯坦布尔有关。但是,我在终端窗口上获得了正确的代码覆盖率报告:

奇怪的是,并不是每次测试运行时都会发生错误,所以有时候我可以很好地获取html文件

下面是解决我的问题的
karma.conf

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['browserify', 'jasmine-jquery', 'jasmine'],
    files: [
      'bower_components/jquery/dist/jquery.js',
      'bower_components/jquery-validation/dist/jquery.validate.js',
      'src/js/**/*.js',
      'src/spec/**/*.spec.js'
    ],
    exclude: [
      'src/js/index.js'
    ],
    preprocessors: {
      'src/js/**/*.js': ['browserify'],
      'src/spec/**/*.spec.js': ['browserify']
    },
    browserify: {
      debug: true,
      extensions: ['.js'],
      configure: (bundle) => {
        bundle.transform('babelify', { presets: ['es2015'] });
        bundle.transform(require('browserify-istanbul')({
          ignore: ['**/spec/**']
        }));
      }     
    },
    reporters: ['mocha', 'coverage'],
    coverageReporter: {
      dir: 'coverage',
      subdir: '.',
      reporters: [
        { type: 'html', dir: 'coverage' },
        { type: 'text-summary' }
      ],

      etc...
    }
  });
};

在这篇文章的正确答案上建议的配置帮助了我:

现在我在html报告
error[coverage]:TypeError:无法读取未定义的
的属性“text”(意思是我想为报告生成的html文件没有生成),它似乎与伊斯坦布尔有关。但是,我在终端窗口上获得了正确的代码覆盖率报告:

奇怪的是,并不是每次测试运行时都会发生错误,所以有时候我可以很好地获取html文件

下面是解决我的问题的
karma.conf

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['browserify', 'jasmine-jquery', 'jasmine'],
    files: [
      'bower_components/jquery/dist/jquery.js',
      'bower_components/jquery-validation/dist/jquery.validate.js',
      'src/js/**/*.js',
      'src/spec/**/*.spec.js'
    ],
    exclude: [
      'src/js/index.js'
    ],
    preprocessors: {
      'src/js/**/*.js': ['browserify'],
      'src/spec/**/*.spec.js': ['browserify']
    },
    browserify: {
      debug: true,
      extensions: ['.js'],
      configure: (bundle) => {
        bundle.transform('babelify', { presets: ['es2015'] });
        bundle.transform(require('browserify-istanbul')({
          ignore: ['**/spec/**']
        }));
      }     
    },
    reporters: ['mocha', 'coverage'],
    coverageReporter: {
      dir: 'coverage',
      subdir: '.',
      reporters: [
        { type: 'html', dir: 'coverage' },
        { type: 'text-summary' }
      ],

      etc...
    }
  });
};
module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['browserify', 'jasmine-jquery', 'jasmine'],
    files: [
      'bower_components/jquery/dist/jquery.js',
      'bower_components/jquery-validation/dist/jquery.validate.js',
      'src/js/**/*.js',
      'src/spec/**/*.spec.js'
    ],
    exclude: [
      'src/js/index.js'
    ],
    preprocessors: {
      'src/js/**/*.js': ['browserify'],
      'src/spec/**/*.spec.js': ['browserify']
    },
    browserify: {
      debug: true,
      extensions: ['.js'],
      configure: (bundle) => {
        bundle.transform('babelify', { presets: ['es2015'] });
        bundle.transform(require('browserify-istanbul')({
          ignore: ['**/spec/**']
        }));
      }     
    },
    reporters: ['mocha', 'coverage'],
    coverageReporter: {
      dir: 'coverage',
      subdir: '.',
      reporters: [
        { type: 'html', dir: 'coverage' },
        { type: 'text-summary' }
      ],

      etc...
    }
  });
};