Angular Unit Test — запуск по модулю или папке

У меня есть проект Angular с настройкой Karma для модульного тестирования. Тест и покрытие отлично работают для всех файлов спецификаций, но с каждым днем ​​приложение становится больше, и мне мешает запускать все тесты, даже если я фокусируюсь на новом модуле, поэтому я хотел запустить только некоторые тесты, которые мне нужны. хочу проверить, например, у меня есть папка с трубами, и все, что я хочу сделать, это запустить только файлы спецификаций в этой папке, Я знаю, что могу обновить контекст в своем файле test.ts, но я не хочу каждый раз обновлять и возвращать этот файл...

Я попытался создать новый файл конфигурации Karma и обновил свойство files, чтобы добавить только те файлы, которые мне нужны, но это не сработало. Я не знаю, может быть, я делаю это неправильно. (См. ниже часть кода в этом файле)

Есть ли какое-нибудь решение или трюк для этого? что-то вроде отдельного файла конфигурации кармы (например: karma.config.pipes.ts), который изменяет контекст?

// Override dev config
config.set({
  files: [
    {pattern: '../app/pipes/*.spec.ts'}
  ]
});

Проверьте этот ответ stackoverflow.com/a/54168380/604156 ;) Он использует веб-пакет, но вы можете адаптировать его для своих нужд.

Ali Ben Messaoud 25.02.2019 14:52
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
11
1
4 322
2

Ответы 2

у вас может быть файл 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.

Oussama BEN MAHMOUD 07.02.2019 14:45

Не уверен, что это актуально, но с 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.

Другие вопросы по теме