在所有测试运行之前,Karma断开连接

时间:2016-09-13 11:10:00

标签: javascript angularjs unit-testing karma-runner karma-jasmine

我们正在使用业力作为茉莉花单元测试的测试运行器,测试Angular应用程序。我们有超过6000个测试。 Karma运行测试的速度很慢,并且从未超过2700次测试(11分钟)。

Karma可以运行的测试数量是否有限制,或者测试运行程序的性能是否正常降低,因为测试数量会增加?

// Karma Config file
module.exports = function(config) {
  config.set({
    basePath: '../',
    frameworks: ['jasmine'],
    files: [
       ...list of files
    ],
    proxies: {
        '/images/': '/base/src/client/images/',
    },
    exclude: [
      'src/client/app/window/window.js'
    ],
    preprocessors: {
      '**/*.partial.html': ['ng-html2js']
    },
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: false,
    browsers: ['Chrome'],
    singleRun: true,
    concurrency: Infinity,
    browserNoActivityTimeout: 100000,
    plugins: [
      'karma-jasmine',
      'karma-chrome-launcher',
      'karma-phantomjs-launcher',
      'karma-firefox-launcher',
      'karma-ie-launcher',
      'karma-ng-html2js-preprocessor'
    ],
    ngHtml2JsPreprocessor: {
      moduleName: 'templates',
      stripPrefix: 'src/client'
      }
  })
}

1 个答案:

答案 0 :(得分:0)

为帮助减慢测试的执行速度,我发现使用ng-bullet(https://www.npmjs.com/package/ng-bullet)对加快测试速度非常有帮助。通过6k测试,转移组件可能是一项艰巨的任务,但是您应该能够一次从一个冗长的规范开始一次制作一个规范文件,以查看它对执行时间有多大帮助。

我用来帮助测试的另一件事是将测试分为套件,这样,如果测试应用程序的特定部分,则可以并行或以较小的块的形式使用多个套件。本文讨论了该概念以及如何使用ng-bullet:https://www.forbes.com/sites/forbesdigitalgroup/2019/05/14/improve-your-angular-jasmine-unit-test-speeds-by-500/#45ee76a14163