在 Angular 中生成没有 spec.ts 文件的组件 2+
Generating Component without spec.ts file in Angular 2+
有没有办法在我创建新组件时删除 Angular 2+ 中的 spec.ts 文件。我知道这是为了测试目的,但如果我不需要它怎么办。
可能有一些设置可以禁用这个特定的测试文件。
更新 Angular >=8 CLI
对于一个组件,使用以下命令:
ng generate component --skip-tests=true component-name
对于单个项目,在 angular.json
中更改或添加以下内容:
{
"projects": {
"{PROJECT_NAME}": {
"schematics": {
"@schematics/angular:component": {
"skipTests": true
}
}
}
}
}
对于所有项目的全局设置,请在 angular.json
中更改或添加以下内容:
{
"schematics": {
"@schematics/angular:component": {
"skipTests": true
}
}
}
或者使用命令行
ng config schematics.@schematics/angular:component.skipTests true
在您的 angular-cli.json
中将 spec.component 参数设置为 false
:
{
...
"defaults" : {
...
"spec": {
...
"component": false
}
}
}
或在创建过程中使用 --spec=false
选项
ng generate component --spec=false component-name
当使用 angular-cli 时,有很多选项需要传递。要生成不带测试的新组件,您可以简单地添加 --spec=false
,如下所示:
ng generate component --spec=false my-component
angular-cli.json 中还有一个选项,您希望默认启用哪些类型的规范,您可以在其中修改行为:
"defaults": {
"spec": {
"class": false,
"component": true,
"directive": true,
"module": false,
"pipe": true,
"service": true
}
}
根据 fix #156,您可以使用
创建一个没有规范文件的组件
ng generate component my-comp --nospec
ng g c component-name --spec false
在最近的 Angular 版本中,您可以配置 cli 生成器以禁止在 angular-cli.json
中为组件和服务创建规范文件,如下所示:
"defaults": {
"component": { "spec": false },
"service": { "spec": false },
...
}
您可以添加额外的行来禁用守卫和 类 等的规格。
有禁用Angular默认生成"spec"个文件的命令
ng set defaults.class.spec=false
ng set defaults.component.spec=false
更新: 对于 Angular 6
ng config schematics.@schematics/angular.component.spec false
就试试这个吧。
这是有效的
ng g c component_name --spec false
对于Angular 6
ng config schematics.@schematics/angular.component.spec false
For angular 6 在 "schematics":{}
内的 angular.json 中添加:
"@schematics/angular": {
"component": {
"spec": false
}
}
或
正如 Franklin Pious 所建议的那样,运行 这个命令:
ng config schematics.@schematics/angular.component.spec false
对于angular 6+只需运行这个命令:
ng config schematics.@schematics/angular.component.spec false
或
只需将其添加到您的 angular.json 文件中即可
"schematics": {
"@schematics/angular": {
"component": {
"spec": false
}
}
}
注意:在粘贴此冲突检查之前,希望对您有所帮助
在Angular7
中用这个简单的命令简单地创建组件
ng g c component-name --spec false
或者如果真的不想将它包含在任何组件中,只需更新 angular.json
"@schematics/angular": {
"component": {
"spec": false
}
}
对于 Angular 8: ng generate component mycomponent --skipTests=false
对于 Angular 7 及更高版本,这将有效:
ng generate component componentname --skipTests
或
ng generate component componentname --skipTests=true
您可以在创建组件时使用以下命令
ng g c component-name --spec false
如果您想跳过 spec.ts 文件,也可以使用以下命令:
ng g c try-it --skipTests=true
其中
g c
=> 生成组件,
try-it
=> 组件名称,
--skipTest=true
=> == -- spec false
。
For Angular 9 you can use
ng g c "componentName" --spec=false
to generate component without spec file
之所以添加这一点信息,是因为我发现自己遇到了同样的问题并且无法使用当前答案解决它,而且我不想在 angular-cli.json
上进行更改文件。 Angular CLI --spec=false
的最新版本似乎已过时,因此不再有效,请改用 --skipTests
。
测试时间:
Angular CLI: 9.1.1
Node: 12.16.1
OS: win32 x64
你的命令是:
ng g c mycomponent --skipTests
代替
ng g c mycomponent --spec=false
PS:始终使用 --dry-run
选项测试您的命令以测试您的输出。
这是什么 angular 9
ng g class models\user --skip-tests true
它不会生成 spec.ts 个文件。
--spec
将不再有效。请改用 --skip-tests
。
您将通过以下命令看到所有选项:
ng g c --help
如果您想跳过特定组件的规范文件。
新版本:
ng generate component "componentName" --skipTests
例子
ng generate component recipe-list --skipTests
旧版本:
ng generate component "componentName" --spec false
例子
ng generate component recipe-list --spec false
最新Angular 9兼容
CLI 命令
ng generate component your-component-name --skipTests=true
或 使用别名 s
而不是 --skipTests
ng generate component your-component-name -s=true
修改 angular.json
以避免总是使用上述 CLI 命令
将以下代码片段复制到特定项目 (projects.your-project-name
) 的 angular.json
.
中
以下内容将确保不会为 组件、Class[=44= 创建 .spec
文件]、指令、管道和服务与ng generate
命令。 可以根据需要选择。
{
...
"projects": {
"your-project-name": {
...
"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
}
},
...
}
PS:--spec=false
选项现已弃用,将无法使用
使用时:
- Angular CLI:10.0.3
- 节点:12.16.3
- Angular: 10.0.4
生成组件时必须使用“--skip-tests true”。
(注意:您可以通过在终端中尝试“ng v”或“ng -v”来获取上述版本信息)。
您可以使用“ng g c --help”获取“ng g c(ng generate component 的缩写)”的完整开关列表。
或者您可以手动添加组件。为此,通过右键单击项目的 /src/app 文件夹创建一个新文件夹。创建文件夹后,右键单击它可以添加一个或多个文件,例如mycomp.component.html和mycomp.component.ts。
添加 mycomp.component.ts 是组件的最低要求列表,因为您可以将内联 css 和 html 添加到您的 .ts 文件中。
示例:
import { Component } from '@angular/core';
@组件({
选择器:'app-mycomp',
模板:'<p> Hello Angular </p>
'
})
导出 class MyComp {}
在 app.module.ts 声明列表中导入并注册 MyComp,并将其添加到 app.component.html 或其他模板,使用选择器 (<app-mycomp></app-mycomp
>
Angular < 8
$ ng g component component-name --spec=false
Angular > 8
$ ng g component component-name --skipTests=false --flat
$ ng g component employee/listEmployees --skipTests=false --flat
这很容易做到。在创建组件时添加
--skipTests=true
ng generate component --skipTests=true componentName
或者
ng g c --skipTests=true componentName
对于angular 8+你只需要添加
--skipTests=true
最后
ng g c component-name --skipTests=true
g简写为generate。
c 缩写为 component
你也可以使用
ng generate component component-name --skipTests=true
它对我有用 angular 11
ng g c posts/new-component --module app --skip-tests
注:
组件名称应如下所示:new-component
或 newComponent
.
为特定文件夹生成:dir/new-component
将 new-component
添加到 app.module.ts
: --module app
只使用 --skip-tests
命令生成没有 spec.ts
文件的组件
回复:在 Angular 中生成没有 spec.ts 文件的组件 2+
ng g c ComponentName --skip-tests true
在您的项目中进入 angular.json 文件并在原理图字段中添加 spec - false
保存并重新启动您的项目
现在你可以创建没有规格文件的所有组件
"schematics": {
"@schematics/angular:component": {
"style": "scss",
"spec": false
}
},
对于 Angular 10+ - 对于所有项目的全局设置。
转到 angular.json 文件
在“原理图”字段中添加:
"@schematics/angular:component": {
"skipTests": true
},
** 服务、警卫等也是可能的...
"@schematics/angular:service": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
}
有没有办法在我创建新组件时删除 Angular 2+ 中的 spec.ts 文件。我知道这是为了测试目的,但如果我不需要它怎么办。
可能有一些设置可以禁用这个特定的测试文件。
更新 Angular >=8 CLI
对于一个组件,使用以下命令:
ng generate component --skip-tests=true component-name
对于单个项目,在 angular.json
中更改或添加以下内容:
{
"projects": {
"{PROJECT_NAME}": {
"schematics": {
"@schematics/angular:component": {
"skipTests": true
}
}
}
}
}
对于所有项目的全局设置,请在 angular.json
中更改或添加以下内容:
{
"schematics": {
"@schematics/angular:component": {
"skipTests": true
}
}
}
或者使用命令行
ng config schematics.@schematics/angular:component.skipTests true
在您的 angular-cli.json
中将 spec.component 参数设置为 false
:
{
...
"defaults" : {
...
"spec": {
...
"component": false
}
}
}
或在创建过程中使用 --spec=false
选项
ng generate component --spec=false component-name
当使用 angular-cli 时,有很多选项需要传递。要生成不带测试的新组件,您可以简单地添加 --spec=false
,如下所示:
ng generate component --spec=false my-component
angular-cli.json 中还有一个选项,您希望默认启用哪些类型的规范,您可以在其中修改行为:
"defaults": {
"spec": {
"class": false,
"component": true,
"directive": true,
"module": false,
"pipe": true,
"service": true
}
}
根据 fix #156,您可以使用
创建一个没有规范文件的组件ng generate component my-comp --nospec
ng g c component-name --spec false
在最近的 Angular 版本中,您可以配置 cli 生成器以禁止在 angular-cli.json
中为组件和服务创建规范文件,如下所示:
"defaults": {
"component": { "spec": false },
"service": { "spec": false },
...
}
您可以添加额外的行来禁用守卫和 类 等的规格。
有禁用Angular默认生成"spec"个文件的命令
ng set defaults.class.spec=false
ng set defaults.component.spec=false
更新: 对于 Angular 6
ng config schematics.@schematics/angular.component.spec false
就试试这个吧。 这是有效的
ng g c component_name --spec false
对于Angular 6
ng config schematics.@schematics/angular.component.spec false
For angular 6 在 "schematics":{}
内的 angular.json 中添加:
"@schematics/angular": {
"component": {
"spec": false
}
}
或
正如 Franklin Pious 所建议的那样,运行 这个命令:
ng config schematics.@schematics/angular.component.spec false
对于angular 6+只需运行这个命令:
ng config schematics.@schematics/angular.component.spec false
或
只需将其添加到您的 angular.json 文件中即可
"schematics": {
"@schematics/angular": {
"component": {
"spec": false
}
}
}
注意:在粘贴此冲突检查之前,希望对您有所帮助
在Angular7
中用这个简单的命令简单地创建组件ng g c component-name --spec false
或者如果真的不想将它包含在任何组件中,只需更新 angular.json
"@schematics/angular": {
"component": {
"spec": false
}
}
对于 Angular 8: ng generate component mycomponent --skipTests=false
对于 Angular 7 及更高版本,这将有效:
ng generate component componentname --skipTests
或
ng generate component componentname --skipTests=true
您可以在创建组件时使用以下命令
ng g c component-name --spec false
如果您想跳过 spec.ts 文件,也可以使用以下命令:
ng g c try-it --skipTests=true
其中
g c
=> 生成组件,
try-it
=> 组件名称,
--skipTest=true
=> == -- spec false
。
For Angular 9 you can use
ng g c "componentName" --spec=false
to generate component without spec file
之所以添加这一点信息,是因为我发现自己遇到了同样的问题并且无法使用当前答案解决它,而且我不想在 angular-cli.json
上进行更改文件。 Angular CLI --spec=false
的最新版本似乎已过时,因此不再有效,请改用 --skipTests
。
测试时间:
Angular CLI: 9.1.1
Node: 12.16.1
OS: win32 x64
你的命令是:
ng g c mycomponent --skipTests
代替
ng g c mycomponent --spec=false
PS:始终使用 --dry-run
选项测试您的命令以测试您的输出。
这是什么 angular 9
ng g class models\user --skip-tests true
它不会生成 spec.ts 个文件。
--spec
将不再有效。请改用 --skip-tests
。
您将通过以下命令看到所有选项:
ng g c --help
如果您想跳过特定组件的规范文件。
新版本:
ng generate component "componentName" --skipTests
例子
ng generate component recipe-list --skipTests
旧版本:
ng generate component "componentName" --spec false
例子
ng generate component recipe-list --spec false
最新Angular 9兼容
CLI 命令
ng generate component your-component-name --skipTests=true
或 使用别名 s
而不是 --skipTests
ng generate component your-component-name -s=true
修改 angular.json
以避免总是使用上述 CLI 命令
将以下代码片段复制到特定项目 (projects.your-project-name
) 的 angular.json
.
以下内容将确保不会为 组件、Class[=44= 创建 .spec
文件]、指令、管道和服务与ng generate
命令。 可以根据需要选择。
{
...
"projects": {
"your-project-name": {
...
"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
}
},
...
}
PS:--spec=false
选项现已弃用,将无法使用
使用时:
- Angular CLI:10.0.3
- 节点:12.16.3
- Angular: 10.0.4
生成组件时必须使用“--skip-tests true”。 (注意:您可以通过在终端中尝试“ng v”或“ng -v”来获取上述版本信息)。
您可以使用“ng g c --help”获取“ng g c(ng generate component 的缩写)”的完整开关列表。
或者您可以手动添加组件。为此,通过右键单击项目的 /src/app 文件夹创建一个新文件夹。创建文件夹后,右键单击它可以添加一个或多个文件,例如mycomp.component.html和mycomp.component.ts。 添加 mycomp.component.ts 是组件的最低要求列表,因为您可以将内联 css 和 html 添加到您的 .ts 文件中。
示例:
import { Component } from '@angular/core';
@组件({
选择器:'app-mycomp',
模板:'<p> Hello Angular </p>
'
})
导出 class MyComp {}
在 app.module.ts 声明列表中导入并注册 MyComp,并将其添加到 app.component.html 或其他模板,使用选择器 (<app-mycomp></app-mycomp
>
Angular < 8
$ ng g component component-name --spec=false
Angular > 8
$ ng g component component-name --skipTests=false --flat
$ ng g component employee/listEmployees --skipTests=false --flat
这很容易做到。在创建组件时添加
--skipTests=true
ng generate component --skipTests=true componentName
或者
ng g c --skipTests=true componentName
对于angular 8+你只需要添加
--skipTests=true
最后
ng g c component-name --skipTests=true
g简写为generate。 c 缩写为 component
你也可以使用
ng generate component component-name --skipTests=true
它对我有用 angular 11
ng g c posts/new-component --module app --skip-tests
注:
组件名称应如下所示:new-component
或 newComponent
.
为特定文件夹生成:dir/new-component
将 new-component
添加到 app.module.ts
: --module app
只使用 --skip-tests
命令生成没有 spec.ts
文件的组件
回复:在 Angular 中生成没有 spec.ts 文件的组件 2+
ng g c ComponentName --skip-tests true
在您的项目中进入 angular.json 文件并在原理图字段中添加 spec - false
保存并重新启动您的项目 现在你可以创建没有规格文件的所有组件
"schematics": {
"@schematics/angular:component": {
"style": "scss",
"spec": false
}
},
对于 Angular 10+ - 对于所有项目的全局设置。
转到 angular.json 文件
在“原理图”字段中添加:
"@schematics/angular:component": { "skipTests": true },
** 服务、警卫等也是可能的...
"@schematics/angular:service": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
}