gpt4 book ai didi

Angular 9 + CLI (TypeScript) - 如何停止生成 .spec.ts 测试文件

转载 作者:太空狗 更新时间:2023-10-29 16:49:15 26 4
gpt4 key购买 nike

我知道这是一种不好的做法,但请耐心等待:

我正在使用 Angular-CLI,尤其是 ng g 来生成我所有的类。但是,我对任何 *.spec.ts 测试文件都不感兴趣。我知道有两个标志(--inline-template--inline-style)来处理内联 CSS 和 HTML 而不是单独的文件,并且对于规范 --spec 标志默认设置为 true。

所以对于每次运行,是的,我可以执行 ng g c foo --it --is --spec=false

但是如何在全局范围内禁用测试文件的创建?是否有任何默认设置?

鲁莽地,我做了一些(没有用),比如:

ng set spec=false --global

我还尝试通过填充排除数组来配置我的 src/tsconfig.json:

"exclude": [
"**/*.spec.ts"
]

最佳答案

对于 Angular 9+(版本 6+ 以下)

1) 将片段复制到 angular.json 的根目录,(为所有项目/全局配置设置)。
2) 或者将片段复制到特定项目 ( projects.your-project-name ) 的根目录中 angular.json (为特定项目配置设置)。

"schematics": {
"@schematics/angular:component": {
"style": "scss",
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},

每种文件类型的所有可配置选项 Schematic Options :

"schematics": {
"@schematics/angular:component": {
"changeDetection": "Default",
"entryComponent": false,
"export": false,
"flat": false,
"inlineStyle": false,
"inlineTemplate": false,
"module": "",
"prefix": "",
"selector": "",
"skipImport": false,
"spec": true,
"style": "css",
"viewEncapsulation": "Emulated",
"skipTests": "false"
},
"@schematics/angular:module": {
"commonModule": true,
"flat": false,
"module": "",
"routing": false,
"routingScope": "Child"
},
"@schematics/angular:service": {
"flat": true,
"skipTests": true
},
"@schematics/angular:pipe": {
"export": false,
"flat": true,
"module": "",
"skipImport": false,
"skipTests": true
},
"@schematics/angular:directive": {
"export": false,
"flat": true,
"module": "",
"prefix": "app",
"selector": "",
"skipImport": false,
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
}
},

对于 Angular 6+

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
}
},

每种文件类型的所有可配置选项 ( Schematic Options ):

"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
}
},

使用 Angular CLI 配置 Angular CLI

错误:

ng set defaults.spec.component false命令导致错误:get/set have been deprecated in favor of the config command.

ng set变成了ng config .

使用 Angular CLI(配置命令用法):

angular.json 中生成规范、内​​联模板、内联样式等的设置现在保存在 schematics.@schematics/angular.<file-type>.<setting> 中.

运行 ng config schematics.@schematics/angular.component.spec false为组件配置规范。此命令在 angular.json 内的 schematics 属性中添加设置文件。


Angular CLI workspace file (angular.json) on Angular Github

Schematic options inside schema.json

How to do X in Angular CLI v6

关于Angular 9 + CLI (TypeScript) - 如何停止生成 .spec.ts 测试文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com