angular - Jasmine ve Karma ile .ts dosyalarını kullanamıyor. 'Dosya türü belirlenemiyor..' hatası alınıyor


karma.conf.js dosyasını TypeScript dosyalarını işlemek için nasıl yapılandıracağım konusunda gerçekten yardıma ihtiyacım var ya da burada neyin eksik olduğunu veya neyi yanlış yaptığımı bilmiyorum. Birim testlerine oldukça yeniyim ve Jasmine çerçevesini öğrendim (örneklerde *.js ve *.spec.js dosyaları kullanılıyor) ama benim ionic-angular projemde *.ts dosyalar var ve aşağıda gösterilen hataları alıyorum. Bunu çözmeye çalışıyorum 2 gündür ve bir türlü çözemiyorum. Her türlü yardım gerçekten takdir edilir.

[Angular 6 (6.1.10) ve TypeScript (3.8.+) ile Ionic 3 (ionic-angular 3.9.+) çerçevesini kullanarak]

benim tsconfig.json'um >

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

benim karma.conf.js >

module.exports = function (config) {
  config.set({
    frameworks: ['jasmine', 'jasmine-matchers'],
    files: [
      'src/**/*.ts',
      'src/**/*.spec.ts'
    ],
    plugins: [
      'karma-jasmine',
      'karma-jasmine-matchers',
      'karma-chrome-launcher'
    ],
    reporters: ['dots'],
    colors: true,
    browsers: ['ChromeHeadless'],
    singleRun: true
  })
};

benim package.json devDependencies'im:

"devDependencies": {
    "@ionic/app-scripts": "3.2.4",
    "jasmine-core": "^3.5.0",
    "karma": "^5.1.0",
    "karma-chrome-launcher": "^3.1.0",
    "karma-jasmine": "^3.3.1",
    "karma-jasmine-matchers": "^4.0.2",
    "puppeteer": "^1.20.0",
    "ts-node": "^8.10.2",
    "typescript": "^3.8.3"
  },

ALTI HATASI alıyorum:

15 06 2020 09:40:23.844:WARN [middleware:karma]: Unable to determine file type from the file extension, defaulting to js.
  To silence the warning specify a valid type for C:/Users/USR01/Documents/testing/src/providers/member/member.ts in the configuration file.
  See http://karma-runner.github.io/latest/config/files.html
........
........
15 06 2020 09:40:23.844:WARN [middleware:karma]: Unable to determine file type from the file extension, defaulting to js.
  To silence the warning specify a valid type for C:/Users/USR01/Documents/testing/src/providers/scores/scores.ts in the configuration file.
Chrome 83.0.4103.97 (Windows 10): Executed 0 of 0 SUCCESS (0.001 secs / 0 secs)
npm ERR! Test failed.  See above for more details.

Cevap #1

Bu umut verici görünüyor. https://www.npmjs.com/package/karma-typescript

TypeScript'i normal JavaScript'e derlemek için bir önişlemci ekledikten sonra, bunu files: [] dizinize koyarak Karma'ya bunun bir js dosyası olduğunu söyleyin:

  files: [
    {
      pattern: 'src/**/*.ts',
      type: 'js'  // to silence the warning. Means load with <script> tag
    },
  ]

İlgili makaleler