Исключите определенные папки из тестов Karma

#angular #typescript #unit-testing #testing #karma-jasmine

Вопрос:

Для запуска нашего проекта мы использовали внешний шаблон. Теперь, когда мы начинаем создавать все больше и больше компонентов, я хочу интегрировать тестирование.

Поскольку все тесты в шаблоне проваливаются по нескольким причинам, я хочу их исключить. Но я не могу найти правильный способ сделать это. Использование exclude свойства в karma.conf.js и tsconfig.spec.ts только приводит к Incomplete: No specs found, , randomized with seed 90206

Вот что я получил до сих пор

tsconfig.spec.ts

 {
    "extends": "./tsconfig.base.json",
    "compilerOptions": {
        "outDir": "./out-tsc/spec",
        "types": [
            "jasmine",
            "node"
        ]
    },
    "files": [
        "src/test.ts",
        "src/polyfills.ts"
    ],
    "include": [
        "src/**/*.spec.ts",
        "src/**/*.d.ts"
    ],
    "exclude": [
        "src/app/[foldername]/**/*.spec.ts"
    ]
}
 

karma.conf.js

 module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, './coverage/ceonline'),
      reports: ['html', 'lcovonly', 'text-summary'],
      fixWebpackSourcePaths: true
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    restartOnFileChange: true,
        exclude: [
            "src/app/[foldername]/**/*.spec.ts"
        ]
  });
};
 

угловой.json

 "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.spec.json",
            "karmaConfig": "karma.conf.js",
                        "codeCoverageExclude": ["src/app/[foldername]/**/*.spec.ts"],
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.scss"
            ],
            "scripts": []
          }
        },
 

У кого-нибудь есть представление о том, что я здесь делаю неправильно и как заставить работать папки с исключениями?

Комментарии:

1. Это tsconfig.spec.ts должно быть правильное место для достижения этой цели. Однако я не могу обнаружить никаких очевидных недостатков в вашей конфигурации. Но в качестве альтернативного решения вы можете использовать xdescribe , чтобы предотвратить выполнение некоторых тестов.