Угловой 6 + CLI (TypeScript) - Как остановить создание тестовых файлов.spec.ts
Я ЗНАЮ ЭТО ВИДЕТЬ ПЛОХОЙ ПРАКТИКОЙ, но пара со мной:
Я использую Angular -CLI, и особенно ng g
, чтобы сгенерировать все мои классы, однако меня не интересует какой-либо тестовый файл *.spec.ts
, и я знаю, что есть два флага (--inline-template
, --inline-style
) для обработки встроенных CSS и HTML вместо отдельных файлов.
и для spec флаг по умолчанию установлен в значение true --spec
Итак, для каждого прогона да, я могу сделать это ng g c foo --it --is --spec=false
Но как отключить создание тестовых файлов по всему миру? есть ли настройка по умолчанию для него?
Rashly, я сделал некоторые вещи вроде (это не сработало):
ng set spec=false --global
Затем попытался настроить файл настроек ts src/tsconfig.json
, заполнив массив exclude.
"exclude": [
"**/*.spec.ts"
]
Ответы
Ответ 1
Для угловых 6>
Конфигурация (например, для генерации спецификаций) может быть выполнена вручную или с помощью Angular CLI.
Ручная угловая конфигурация CLI
1) Скопировать фрагмент в корень angular.json
(настройка параметров для всех проектов/глобально).
2) Или скопируйте фрагмент в корень определенного проекта (projects.your-project-name
) в angular.json
(настраивает параметры для конкретного проекта).
"schematics": {
"@schematics/angular:component": {
"styleext": "scss",
"spec": false
},
"@schematics/angular:class": {
"spec": false
},
"@schematics/angular:directive": {
"spec": false
},
"@schematics/angular:guard": {
"spec": false
},
"@schematics/angular:module": {
"spec": false
},
"@schematics/angular:pipe": {
"spec": false
},
"@schematics/angular:service": {
"spec": false
}
},
Все настраиваемые параметры для каждого типа файла (параметры схемы):
"schematics": {
"@schematics/angular:component": {
"changeDetection": "Default",
"export": false,
"flat": false,
"inlineStyle": false,
"inlineTemplate": false,
"module": "",
"prefix": "",
"selector": "",
"skipImport": false,
"spec": true,
"styleext": "css",
"viewEncapsulation": "Emulated"
},
"@schematics/angular:module": {
"commonModule": true,
"flat": false,
"module": "",
"routing": false,
"routingScope": "Child",
"spec": true
},
"@schematics/angular:service": {
"flat": true,
"spec": true
},
"@schematics/angular:pipe": {
"export": false,
"flat": true,
"module": "",
"skipImport": false,
"spec": true
},
"@schematics/angular:directive": {
"export": false,
"flat": true,
"module": "",
"prefix": "app",
"selector": "",
"skipImport": false,
"spec": true
},
"@schematics/angular:class": {
"spec": true
}
},
Угловая конфигурация CLI с угловым CLI
ОШИБКА:
Команда ng set defaults.spec.component false
приводит к ошибке: get/set have been deprecated in favor of the config command.
ng set got changed to ng config
.
Использование Angular CLI (использование команды config):
Настройки для генерации спецификаций, встроенных шаблонов, встроенного стиля и т.д. В angular.json
теперь сохраняются внутри [email protected]/angular.<file-type>.<setting>
.
Запустите ng config [email protected]/angular.component.spec false
чтобы настроить спецификации для компонентов. Эта команда добавляет параметр в свойство angular.json
файле angular.json
.
Файл рабочей области Angular CLI (angular.json) в Angular Github
Опции схемы внутри schema.json
Как сделать X в Angular CLI v6
Ответ 2
Вы можете запустить эту команду, чтобы отключить создание файла спецификаций для определенного типа файла:
ng set defaults.spec.FILETYPE false
Например:
ng set defaults.spec.component false // Won't generate spec files for .component files
В качестве альтернативы вы можете просто отключить генерацию всех файлов спецификаций из файла angular -cli.json.
{
...
"defaults": {
"spec": {
"class": false,
"component": false,
"directive": false,
"module": false,
"pipe": false,
"service": false
}
}
}
Ответ 3
Если вы используете v6 и вам нужно отредактировать свой angular.json
Вы можете редактировать схемы для своего проекта.
"schematics": {
"@schematics/angular:component": {
"styleext": "scss",
"spec": false
},
"@schematics/angular:class": {
"spec": false
},
"@schematics/angular:directive": {
"spec": false
},
"@schematics/angular:guard": {
"spec": false
},
"@schematics/angular:module": {
"spec": false
},
"@schematics/angular:pipe": {
"spec": false
},
"@schematics/angular:service": {
"spec": false
}
},
Ответ 4
Просто обновить ответ Саббира Рахмана:
В версии 1.0.2 CLI вам нужно будет установить для файла spec значение false для каждого отдельного типа. Пример приведен ниже:
"defaults": {
"styleExt": "scss",
"component": {
"spec": false
},
"service": {
"spec": false
},
"directive": {
"spec": false
},
"class": {
"spec": false // Set to false by default
},
"module": {
"spec": false // Set to false by default
},
"pipe": {
"spec": false
}
}
Ответ 5
Вы можете добавить --spec=false
пример
ng g c home --spec=false
журнал будет
CREATE src/app/home/home.component.scss (0 bytes)
CREATE src/app/home/home.component.html (23 bytes)
CREATE src/app/home/home.component.ts (262 bytes)
UPDATE src/app/app.module.ts (467 bytes)
Ответ 6
Вы можете добавить --skipTests=true|false
если true, он не будет генерировать какие-либо спецификации.
пример: ng g component componentName --skipTests=true
эта строка не будет генерировать какие-либо файлы spec.ts
РЕДАКТИРОВАТЬ:
Примечание: Начиная с angular 7 эта команда не работает, хотя эта команда упоминается на официальном сайте angular. Здесь: https://angular.io/cli/generate#component