首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >业力覆盖报告显示100%的所有文件,并要求语句。

业力覆盖报告显示100%的所有文件,并要求语句。
EN

Stack Overflow用户
提问于 2016-09-02 10:53:38
回答 1查看 2.1K关注 0票数 3

我使用业力生成覆盖-覆盖,浏览。测试运行良好,但是生成的覆盖率报告没有显示正确的文件内容,并且显示100%的覆盖率,而实际上只有很少的测试。

我的karma.conf.js是:

代码语言:javascript
复制
    // Karma configuration

module.exports = function(config) {
    config.set({

        // base path that will be used to resolve all patterns (eg. files, exclude)
        basePath: './',


        // frameworks to use
        // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
        frameworks: ['browserify', 'mocha', 'chai'],


        // list of files / patterns to load in the browser
        files: [
            'bower_components/jquery/dist/jquery.js',
            'bower_components/angular/angular.js',
            'bower_components/angular-animate/angular-animate.js',
            'bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
            'bower_components/angular-cookies/angular-cookies.js',
            'bower_components/angular-dragdrop/src/angular-dragdrop.js',
            'bower_components/angular-mocks/angular-mocks.js',
            'bower_components/angular-route/angular-route.js',
            'bower_components/angular-sanitize/angular-sanitize.js',
            'bower_components/angular-ui-router/release/angular-ui-router.js',
            'bower_components/angular-xeditable/dist/js/xeditable.js',
            'bower_components/d3/d3.js',
            'bower_components/d3-tip/index.js',
            'bower_components/jquery-ui/jquery-ui.js',
            'bower_components/moment/moment.js',
            'bower_components/ng-file-upload/ng-file-upload.js',
            'bower_components/ngstorage/ngstorage.js',
            'bower_components/restangular/dist/restangular.js',
            'bower_components/toastr/toastr.js',
            'bower_components/underscore/underscore.js',
            'app/components/**/*.js'
        ],


        // list of files to exclude
        exclude: [],


        // preprocess matching files before serving them to the browser
        // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
        preprocessors: {
            'app/components/**/*.js': ['browserify'],
            'app/components/**/!(*.test).js': ['browserify', 'sourcemap', 'coverage']
        },

        browserify: {
            debug: true,
            transform: [
                'babelify'
            ],
            extensions: ['.js']
        },

        babelPreprocessor: {
            options: {
                sourceMap: 'inline',
                blacklist: ['useStrict']
            },
            sourceFileName: function(file) {
                return file.originalPath;
            }
        },

        // optionally, configure the reporter
        coverageReporter: {
            dir: 'coverage/',
            reporters: [{
                type: 'html',
                subdir: 'report-html'
            }, {
                type: 'cobertura',
                subdir: '.',
                file: 'cobertura.txt'
            }, {
                type: 'text',
                subdir: '.',
                file: 'text.txt'
            }, {
                type: 'text-summary',
                subdir: '.',
                file: 'text-summary.txt'
            }, ]
        },


        // test results reporter to use
        // possible values: 'dots', 'progress'
        // available reporters: https://npmjs.org/browse/keyword/karma-reporter
        reporters: ['coverage', 'mocha'],

        // web server port
        port: 9876,

        // enable / disable colors in the output (reporters and logs)
        colors: true,

        // level of logging
        // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
        logLevel: config.LOG_INFO,

        // enable / disable watching file and executing tests whenever any file changes
        autoWatch: true,

        // start these browsers
        // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
        browsers: ['Chrome'],

        // Continuous Integration mode
        // if true, Karma captures browsers, runs the tests and exits
        singleRun: false
    });
};

这是我的package.json

代码语言:javascript
复制
{
  "name": "Touchpoint",
  "private": true,
  "version": "0.0.0",
  "repository": "",
  "scripts": {
    "postinstall": "bower install",
    "prestart": "npm install",
    "start": "node server.js",
    "mocha": "istanbul cover _mocha -- ./app/components/**/*test.js --compilers js:babel-core/register",
    "watch-mocha": "istanbul cover _mocha -- ./app/components/**/*test.js --compilers js:babel-core/register -w",
    "karma": "karma start",
    "test": "npm run karma --single-run",
    "test-suite": "npm run watch-mocha",
    "pretest": "npm install",
    "pretest-suite": "npm install"
  },
  "devDependencies": {
    "angular": "^1.5.0-rc.2",
    "babel": "^6.5.2",
    "babel-cli": "6.10.1",
    "babel-polyfill": "^6.9.1",
    "babel-preset-es2015": "^6.9.0",
    "babelify": "^7.3.0",
    "body-parser": "^1.15.0",
    "bower": "^1.7.9",
    "browserify": "^13.0.1",
    "browserify-istanbul": "^2.0.0",
    "browserify-ngannotate": "^2.0.0",
    "bulkify": "^1.4.2",
    "chai": "^3.5.0",
    "del": "^2.2.0",
    "eslint": "^3.4.0",
    "eslint-config-airbnb": "^9.0.1",
    "eslint-plugin-import": "^1.8.1",
    "eslint-plugin-jsx-a11y": "^1.4.2",
    "eslint-plugin-react": "^5.1.1",
    "event-stream": "^3.3.2",
    "express": "^4.13.4",
    "gulp": "^3.9.1",
    "gulp-angular-filesort": "^1.1.1",
    "gulp-babel": "^6.1.2",
    "gulp-clean-css": "^2.0.10",
    "gulp-concat": "^2.6.0",
    "gulp-eslint": "^2.0.0",
    "gulp-htmlhint": "^0.3.1",
    "gulp-htmllint": "0.0.8",
    "gulp-htmlmin": "^1.3.0",
    "gulp-inject": "^4.1.0",
    "gulp-inject-reload": "0.0.2",
    "gulp-install": "^0.6.0",
    "gulp-jshint": "^2.0.0",
    "gulp-livereload": "^3.8.1",
    "gulp-load-plugins": "^1.2.0",
    "gulp-minify-css": "^1.2.4",
    "gulp-ng-annotate": "^2.0.0",
    "gulp-ng-config": "^1.3.1",
    "gulp-ng-html2js": "^0.2.2",
    "gulp-nodemon": "^2.0.6",
    "gulp-notify": "^2.2.0",
    "gulp-open": "^2.0.0",
    "gulp-order": "^1.1.1",
    "gulp-postcss": "^6.1.1",
    "gulp-print": "^2.0.1",
    "gulp-rename": "^1.2.2",
    "gulp-sass": "^2.3.1",
    "gulp-sourcemaps": "^1.6.0",
    "gulp-stylelint": "^2.0.2",
    "gulp-uglify": "^1.5.3",
    "istanbul": "^0.2.16",
    "istanbul-coveralls": "^1.0.3",
    "jquery": "^3.1.0",
    "jshint-stylish": "^2.1.0",
    "karma": "^0.13.22",
    "karma-babel-preprocessor": "^6.0.1",
    "karma-browserify": "^5.1.0",
    "karma-chai": "^0.1.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-coverage": "^0.2.6",
    "karma-coverage-es6": "^0.2.7",
    "karma-jasmine": "^1.0.2",
    "karma-jquery": "^0.1.0",
    "karma-junit-reporter": "^0.3.8",
    "karma-mocha": "^1.1.1",
    "karma-mocha-reporter": "^2.1.0",
    "karma-ng-html2js-preprocessor": "^1.0.0",
    "karma-requirejs": "^1.0.0",
    "karma-sinon-chai": "^1.2.3",
    "karma-sourcemap-loader": "^0.3.7",
    "main-bower-files": "^2.11.1",
    "method-override": "^2.3.5",
    "mocha": "^3.0.2",
    "postcss-nested": "^1.0.0",
    "postcss-reporter": "^1.3.3",
    "postcss-scss": "^0.1.8",
    "protractor": "^3.1.1",
    "q": "^1.4.1",
    "requirejs": "^2.2.0",
    "shelljs": "^0.6.0",
    "sinon": "^1.17.5",
    "stylelint": "^6.7.1",
    "stylelint-scss": "^1.2.0",
    "vinyl-source-stream": "^1.1.0",
    "watchify": "^3.7.0"
  }
}

我用npm运行业力来运行测试。

我使用angular1.5,我的源文件是es6标准的组件风格。我也在使用导入/导出格式。

我在报道中得到的是绿色的所有源文件(100%覆盖率),而报告中的每个文件的形式如下:

类型要求===“函数”&& require("**************************.js");

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 22:15:27

我能够通过使用褐化-伊斯坦布尔来用浏览器化的变换函数来测试我的代码,而不是使用业力覆盖预处理器来解决类似的问题。

  1. 将browserify-伊斯坦布尔添加为开发依赖项:npm install browserify-istanbul --save-dev
  2. 向您的karma.conf.js的browserify转换部分添加一个browserify-伊斯坦布尔: 转换:[ 'babelify',‘browserify-伊斯坦布尔’,{ instrumenterConfig:{ embedSource: true //这对HTML }}很重要]
  3. 从源预处理程序中删除coverage,所以它只是: 预处理程序:{‘app/components/**/*..js’:'browserify',‘app/components/**/(*.test).js’:'browserify','sourcemap‘//这里不再有’覆盖率‘}

现在,当业力运行浏览器化预处理程序时,代码将被伊斯坦布尔检测(因为转换功能),覆盖报告看起来应该是正确的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39290659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档