在Angularjs 2中获取没有spec.ts文件的Component

时间:2016-12-06 07:47:52

标签: angular angular-cli angular-components

每当我创建一个新组件时,有没有办法摆脱Angularjs 2中的spec.ts文件。我知道这是出于测试目的,但如果我不需要它会怎样。

可能有一些设置可以禁用此特定测试文件。

26 个答案:

答案 0 :(得分:49)

angular-cli.json内,将spec.component参数设置为false

{
   ...
   "defaults" : {
       ...
       "spec": {
           ...
           "component": false
       }
   }
}

或在创建期间使用--spec=false选项

ng generate component --spec=false component-name

答案 1 :(得分:13)

对于Angular 6

ng config schematics.@schematics/angular.component.spec false

答案 2 :(得分:8)

使用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
  }
}

答案 3 :(得分:5)

在最近的Angular版本中,您可以配置cli生成器以禁用angular-cli.json中组件和服务的spec文件的创建,如下所示:

"defaults": {
    "component": { "spec": false },
    "service": { "spec": false },
    ...
}

您还可以为警卫和班级等添加额外的行来禁用规范。

答案 4 :(得分:4)

有一个禁用Angular generate" spec"的命令。默认情况下的文件

ng set defaults.class.spec=false
ng set defaults.component.spec=false

更新:对于Angular 6

ng config schematics.@schematics/angular.component.spec false

答案 5 :(得分:4)

只需尝试一下。 这是有效的

ng g c component_name --spec false

答案 6 :(得分:3)

在Angular 7中使用此简单命令简单地创建组件

ng g c component-name --spec false

或者,如果真的不想将其包含在任何组件中,只需更新angular.json

"@schematics/angular": {
  "component": {
    "spec": false
  }
}

答案 7 :(得分:2)

ng g c component-name --spec false

答案 8 :(得分:2)

对于角度6 + ,只需运行以下命令:

select p.* from dba_tab_privs p where p.owner = upper('<your_user_name>');

OR

只需将其添加到angular.json文件中,您就可以开始使用

ng config schematics.@schematics/angular.component.spec false

注意:在粘贴此检查是否有冲突之前,希望它会有所帮助

答案 9 :(得分:2)

最新的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中。

以下内容将确保未为组件指令创建.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选项现已弃用,将不起作用

答案 10 :(得分:1)

对于angular 6,请将其添加到"schematics":{}中的angular.json中:

"@schematics/angular": {
  "component": {
    "spec": false
  }
}

OR

富兰克林·皮蒂(Franklin Pious)表示,请运行以下命令:

ng config schematics.@schematics/angular.component.spec false

答案 11 :(得分:1)

对于Angular 7:ng生成组件mycomponent --skipTests = false

答案 12 :(得分:1)

根据fix #156,您可以使用

创建没有spec文件的组件
ng generate component my-comp --nospec

答案 13 :(得分:1)

这里是9号角

ng g class models\user --skip-tests true

它不会生成spec.ts文件。

答案 14 :(得分:1)

--spec将不再起作用。请改用--skip-tests

您将通过以下命令看到所有选项:

ng g c --help

答案 15 :(得分:1)

如果您想跳过特定组件的规格文件。

新版本:

ng generate component "componentName" --skipTests

示例

ng generate component recipe-list --skipTests

旧版本:

ng generate component "componentName" --spec false

示例

ng generate component recipe-list --spec false

答案 16 :(得分:0)

它对我有用 ChatTextController( messageSnapshot: messageSnapshot, animation: animation, );

angular 11

注意:

组件的名称应该是这样的:ng g c posts/new-component --module app --skip-tests new-component

为特定文件夹生成:newComponent

dir/new-component 添加到 new-componentapp.module.ts

在命令中只使用 --module app 来生成没有 --skip-tests 文件的组件

答案 17 :(得分:0)

对于有角度的8+用户,您只需添加

-skipTests = true

最后

ng g c component-name --skipTests=true

g的简称。 c缩写为component

您也可以使用

ng generate component component-name --skipTests=true

答案 18 :(得分:0)

这很容易做到。在创建组件时添加

-skipTests = true

ng generate component --skipTests=true componentName

ng g c --skipTests=true componentName

答案 19 :(得分:0)

角度<8 $ ng g component component-name --spec=false

角度> 8 $ ng g component component-name --skipTests=false --flat

   $ ng g component employee/listEmployees --skipTests=false --flat

答案 20 :(得分:0)

使用时:

  • Angular CLI:10.0.3
  • 节点:12.16.3
  • 角度: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';

@Component({ 选择器:“ app-mycomp”, 模板:“ <p> Hello Angular </p>” })

导出类MyComp {}

将MyComp导入并注册到app.module.ts声明列表中,然后使用选择器(<app-mycomp></app-mycomp>

将其添加到app.component.html或其他模板中

答案 21 :(得分:0)

仅添加这些信息是因为我发现自己也遇到了同样的问题,并且无法使用当前答案来解决它,而且我不想对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选项测试命令以测试输出。

答案 22 :(得分:0)

如果要跳过spec.ts文件,请使用以下命令:

ng g c try-it --skipTests=true

其中

g c =>生成组件, try-it =>组件名称, --skipTest=true => == -- spec false

答案 23 :(得分:0)

创建组件时可以使用以下命令

ng g c component-name --spec false

答案 24 :(得分:0)

对于Angular 7和更高版本,它将起作用:

ng generate component componentname --skipTests

或     ng generate component componentname --skipTests=true

答案 25 :(得分:-1)

对于Angular 9,您可以使用

ng g c "componentName" --spec=false

生成没有规格文件的组件