#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 , чтобы предотвратить выполнение некоторых тестов.