網站搜尋

javascript - 如何讓 karma-coverage 在 Aurelia 和 typescript 中運作?


我們的網站是基於 Aurelia navigation skeleton-typescript 起始套件運行的。我能夠讓單元測試在 jasmine 和 karma 上運行,但我無法讓 karma-coverage 正常運作。有辦法讓它運作嗎?

我正在嘗試在 skeleton-typescript 專案中使用以下 karma.conf.js 檔案讓它運作。

module.exports = function(config) {
  config.set({
    basePath: './',
    frameworks: ['systemjs', 'jasmine'],
    systemjs: {
      configFile: 'config.js',
      config: {
        paths: {
          "*": "*",
          "src/*": "src/*",
          "typescript": "node_modules/typescript/lib/typescript.js",
          "systemjs": "node_modules/systemjs/dist/system.js",
          'system-polyfills': 'node_modules/systemjs/dist/system-polyfills.js',
          'es6-module-loader': 'node_modules/es6-module-loader/dist/es6-module-loader.js'
        },
        packages: {
          'test/unit': {
            defaultExtension: 'ts'
          },
          'src': {
            defaultExtension: 'ts'
          }
        },
        transpiler: 'typescript',
        typescriptOptions : {
          "module": "amd",
          "emitDecoratorMetadata": true,
          "experimentalDecorators": true
        }
      },
      serveFiles: [
        'src/**/*.*',
        'jspm_packages/**/*.js'
      ]
    },
    files: [
      'test/unit/setup.ts',
      'test/unit/*.ts'
    ],
    exclude: [],
    preprocessors: { 'src/**/*.ts': ['coverage']},
    reporters: ['progress', 'coverage'],
    coverageReporter: {
      type : 'html',
      dir : 'coverage/'
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};

答案#1

我建議使用命令列介面並使用 au new。這個範本自去年以來已經更新,並提供選項。你可以預設設置 Karma。