我正在为原生的离子问题设置Karma-Jasmine测试 . 我们正在使用Ionic3和Angular5 . 当运行测试测试(业力开始)时,我收到以下错误:

04 04 2018 09:41:06.152:ERROR [karma]:错误:找不到/Users/jackie.cygelman/WS/CRM-Mobile/src/app/app.component.spec.ts的来源! Typescript编译器选项和Karma配置之间是否存在不匹配?

Karma正确地找到了规范,但似乎打字稿版本没有正确编译?我在网上看到了相互矛盾的答案,特别是关于karma.conf.js中karmaTypescriptConfig的内容 . 任何有关不同编译选项的建议都将非常感谢!

tsconfig.js:

{
  "compilerOptions": {
"allowSyntheticDefaultImports": true,
"baseUrl": ".",
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
  "dom",
  "es6"
],
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5"
   },
 "include": [
    "src/**/*.ts"
  ],
  "exclude": [
"node_modules",
"src/**/*.spec.ts",
"src/**/__tests__/*.ts"
  ],
  "compileOnSave": false,
  "atom": {
"rewriteTsconfig": false
  }
 }

karma.conf.js:

var webpackConfig = require('./webpack.test.js');
require('karma-jasmine-html-reporter');


module.exports = function(config) {
config.set( {
basePath: '../',

frameworks: ['jasmine','karma-typescript'],

plugins: [
    'karma-webpack', 'karma-coverage', 'karma-jasmine', 'karma-jasmine-html-reporter', 'karma-typescript'
    ],

files: [
  {
    pattern: './test-config/karma-test-shim.js',
    watched: true
  },
  {
    pattern: './src/**/*.ts',
  },
  {
    pattern: './src/assets/**/*',
    watched: false,
    included: false,
    served: true,
    nocache: false
  }
],

proxies: {
  '/assets/': '/base/src/assets/'
},

preprocessors: {
  './test-config/karma-test-shim.js': ['webpack'],
  "**/*.ts": ["karma-typescript"]
},

   webpack: webpackConfig,

webpackMiddleware: {
  stats: 'errors-only'
},

webpackServer: {
  noInfo: true
},

resolve: {
  extensions: ['.js','.ts']
},

browserConsoleLogOptions: {
  level: 'log',
  format: '%b %T: %m',
  terminal: true
},

coverageIstanbulReporter: {
  reports: [ 'html', 'lcovonly' ],
  fixWebpackSourcePaths: true
},

karmaTypescriptConfig: {
  bundlerOptions: {
      entrypoints:  /\.spec\.ts$/,
      transforms: [
          require("karma-typescript-angular2-transform"),
          require("karma-typescript-es6-transform")()
      ]
  },
  compilerOptions: {
    "lib": [
      "dom", "es6"
    ]
  },
  tsconfig: "./tsconfig.json"
  },

reporters: config.coverage ? ['kjhtml', 'dots', 'coverage-istanbul'] : ['kjhtml','dots'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
singleRun: false
   });

};

karma-test-shim.js:

Error.stackTraceLimit = Infinity;

 require('core-js/es6');
 require('core-js/es7/reflect');

 require('zone.js/dist/zone');
 require('zone.js/dist/long-stack-trace-zone');
 require('zone.js/dist/proxy');
 require('zone.js/dist/sync-test');
 require('zone.js/dist/jasmine-patch');
 require('zone.js/dist/async-test');
 require('zone.js/dist/fake-async-test');

 var appContext = require.context('../src', true, /\.spec\.ts/);

 appContext.keys().forEach(appContext);

 var testing = require('@angular/core/testing');

 var browser = require('@angular/platform-browser-dynamic/testing');

 testing.TestBed.initTestEnvironment(
 browser.BrowserDynamicTestingModule,
 browser.platformBrowserDynamicTesting());