У меня есть проект Angular с настройкой Karma для модульного тестирования. Тест и покрытие отлично работают для всех файлов спецификаций, но с каждым днем приложение становится больше, и мне мешает запускать все тесты, даже если я фокусируюсь на новом модуле, поэтому я хотел запустить только некоторые тесты, которые мне нужны. хочу проверить, например, у меня есть папка с трубами, и все, что я хочу сделать, это запустить только файлы спецификаций в этой папке, Я знаю, что могу обновить контекст в своем файле test.ts, но я не хочу каждый раз обновлять и возвращать этот файл...
Я попытался создать новый файл конфигурации Karma и обновил свойство files, чтобы добавить только те файлы, которые мне нужны, но это не сработало. Я не знаю, может быть, я делаю это неправильно. (См. ниже часть кода в этом файле)
Есть ли какое-нибудь решение или трюк для этого? что-то вроде отдельного файла конфигурации кармы (например: karma.config.pipes.ts), который изменяет контекст?
// Override dev config
config.set({
files: [
{pattern: '../app/pipes/*.spec.ts'}
]
});





у вас может быть файл test.ts, который содержит следующий код
import "zone.js/dist/zone-testing";
import { getTestBed } from "@angular/core/testing";
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from "@angular/platform-browser-dynamic/testing";
declare const require: any;
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
// Then we find all the tests.
// here u can specify the folder
const context = require.context("./pipes", true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
и настройте этот файл в tsconfig.spec.ts
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts",
"./polyfills.ts"
]
}
Я был очень ясен в своем вопросе, я знаю это, и я не хочу редактировать и возвращать каждый раз, когда мой test.ts, я искал другой способ, где я могу проверить все файлы спецификаций в модуле или папке, например и я всегда могу протестировать все приложение, не редактируя файл test.ts.
Не уверен, что это актуально, но с 8.1 вы можете использовать опцию --include, например:
"ng test --include=**/folder/*.spec.ts"
Источники: https://angular.io/cli/test#options и https://blog.ninja-squad.com/2019/07/03/angular-cli-8.1/.
Также не забудьте обновить свой: @angular-devkit/build-angular.
Проверьте этот ответ stackoverflow.com/a/54168380/604156 ;) Он использует веб-пакет, но вы можете адаптировать его для своих нужд.