首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS + Karma + Jasmine +Karma-覆盖范围:空覆盖报告

AngularJS + Karma + Jasmine +Karma-覆盖范围:空覆盖报告
EN

Stack Overflow用户
提问于 2014-04-21 21:40:37
回答 2查看 9.3K关注 0票数 7

我正在尝试将我当前的AngularJS项目与Karma覆盖集成起来。请在package.json和my karma下面找到.

Package.json

代码语言:javascript
复制
{
  "name": "Project",
  "description": "Description",
  "repository": "https://www.repo.com",
  "devDependencies": {
    "karma": "~0.10.9",
    "karma-junit-reporter": "~0.2.1",
    "karma-jasmine": "~0.1.5",
    "karma-ng-scenario": "~0.1",
    "karma-script-launcher": "~0.1.0",
    "karma-chrome-launcher": "~0.1.3",
    "karma-firefox-launcher": "~0.1.3",
    "karma-phantomjs-launcher": "~0.1.4",
    "karma-ng-html2js-preprocessor": "~0.1",
    "karma-coverage": "~0.1"
  }
}

Karma配置

代码语言:javascript
复制
'use strict';

module.exports = function (config) {
  config.set({
    basePath: '../../public/',
    logLevel: config.LOG_DEBUG,
    frameworks: ['jasmine'],
    singleRun: true,
    files: [
        'libs/jquery/jquery-1.9.0.js',
        'libs/angular/1.2.10/angular.js',
        'libs/angular/**/*.js',
        'libs/angular/*.js',
        'libs/vendor/*.js',
        'libs/test/**/*.js',

        // fixtures
        {pattern: 'test/mock-data/helloworld/*.json', watched: true, served: true, included: false},

        'apps/helloworld/**/*.js',
        'apps/helloworld/*.js',
        'test/helloworld/unit/**/*.js',
        'test/helloworld/*.js',
        'views/helloworld/directives/*.html'
    ],

    exclude: [
        'libs/angular/1.2.10/*.min.js',
        'libs/angular/angular-animate.js'
    ],

    browsers: ['PhantomJS'],

    reporters: ['progress', 'junit', 'coverage'],

    preprocessor: {
        'apps/helloworld/**/*.js': ['coverage'],
        '*.html': ['ng-html2js']
    }
  })
};

当我试图运行“node_node/..bin/业力启动conf/advisor/karma.con.js”时,所有的测试都成功运行,但是业力覆盖报告完全是空的。我尝试了几种选择,但我不能让报告出现。

控制台输出从不运行覆盖范围的预处理器。我可以看到它实际上是为html2js运行的。

代码语言:javascript
复制
DEBUG [plugin]: Loading karma-* from /Users/alansouza/workspace/helloworld/node_modules
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-chrome-launcher.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-coffee-preprocessor.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-    coverage.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-firefox-launcher.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-html2js-preprocessor.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-jasmine.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-junit-reporter.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-ng-html2js-preprocessor.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-ng-scenario.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-phantomjs-launcher.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-requirejs.
DEBUG [plugin]: Loading plugin /Users/alansouza/workspace/helloworld/node_modules/karma-script-launcher.
INFO [karma]: Karma v0.10.10 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
DEBUG [launcher]: Creating temp dir at /var/folders/8_/vw105h0j3vn66cgzttktdjmm0000gn/T/karma-29140367
DEBUG [launcher]: /Users/alansouza/workspace/helloworld/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs  /var/folders/8_/vw105h0j3vn66cgzttktdjmm0000gn/T/karma-29140367/capture.js
DEBUG [watcher]: Excluded file  "/Users/alansouza/workspace/helloworld/public/libs/angular/1.2.10/angular-animate.min.js"
DEBUG [watcher]: Excluded file "/Users/alansouza/workspace/helloworld/public/libs/angular/1.2.10/angular-resource.min.js"
DEBUG [watcher]: Excluded file "/Users/alansouza/workspace/helloworld/public/libs/angular/1.2.10/angular-route.min.js"
DEBUG [watcher]: Excluded file "/Users/alansouza/workspace/helloworld/public/libs/angular/1.2.10/angular-sanitize.min.js"
DEBUG [watcher]: Excluded file "/Users/alansouza/workspace/helloworld/public/libs/angular/1.2.10/angular.min.js"
DEBUG [preprocessor.html2js]: Processing "/Users/alansouza/workspace/helloworld/public/views/advisor/directives/av-product-total.html".
DEBUG [preprocessor.html2js]: Processing "/Users/alansouza/workspace/helloworld/public/views/advisor/directives/av-product.html".
DEBUG [preprocessor.html2js]: Processing "/Users/alansouza/workspace/helloworld/public/views/advisor/directives/av-select-product.html".
DEBUG [watcher]: Resolved files:

问题:,我是不是做错什么了?如何制作业力覆盖来加载我的src js文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-24 20:11:13

我解决了这个问题。是个失踪的"s“。我的业力配置最初是preprocessors.的预处理程序。请在下面找到正确的业力配置:

代码语言:javascript
复制
'use strict';

  module.exports = function (config) {
  config.set({
    basePath: '../../public/',
    logLevel: config.LOG_DEBUG,
    frameworks: ['jasmine'],
    singleRun: true,
    files: [
        'libs/jquery/jquery-1.9.0.js',
        'libs/angular/1.2.10/angular.js',
        'libs/angular/**/*.js',
        'libs/angular/*.js',
        'libs/vendor/*.js',
        'libs/test/**/*.js',

        // fixtures
        {pattern: 'test/mock-data/helloworld/*.json', watched: true, served: true, included: false},

        'apps/helloworld/**/*.js',
        'apps/helloworld/*.js',
        'test/helloworld/unit/**/*.js',
        'test/helloworld/*.js',
        'views/helloworld/directives/*.html'
    ],

    exclude: [
        'libs/angular/1.2.10/*.min.js',
        'libs/angular/angular-animate.js'
    ],

    browsers: ['PhantomJS'],

    reporters: ['progress', 'junit', 'coverage'],

    preprocessors: {
        'apps/helloworld/**/*.js': ['coverage'],
        '*.html': ['ng-html2js']
    }
    })
  };

这里最有趣的一点是:它以前使用过用于ng-html2js的预处理器(我的指令测试通过了)。当我介绍报道时,问题就开始发生了。

票数 4
EN

Stack Overflow用户

发布于 2014-04-21 23:02:58

您缺少preprocessors属性和coverageReporter属性。

将此部分添加到您的业力配置文件中:

代码语言:javascript
复制
preprocessors: {
      'apps/helloworld/**/*.js':['coverage']
   },
coverageReporter:{
      type:'html',
      dir:'C:/Dev/coverage/'
   },

您可以将coverageReporter输出目录更改为任何您想要的。

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

https://stackoverflow.com/questions/23206511

复制
相关文章

相似问题

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