Angular 11 CLI,“ng generate”选项:--skip-tests

use*_*469 2 angular-cli

使用 Angular 11 CLI 时,当我生成新组件时,我可以指定选项--skip-tests以避免.component.spec.ts在此阶段生成 a 。

ng generate component --name asdf --module app --skip-tests --dry-run
Run Code Online (Sandbox Code Playgroud)

当我生成一个包含新组件(--route选项)的新模块时,我无法指定该--skip-tests选项。

ng generate module --name asdf --module app --route asdf --routing true --skip-tests --dry-run
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我会收到错误:

Unknown option: '--skip-tests'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,是否有另一种方法可以跳过生成测试,或者只是不支持generate module

Ben*_*har 7

--skip-tests该命令不支持ng generate module

支持的选项有:

  • --flat
  • --lint-fix
  • --module
  • --project
  • --route
  • --routing
  • --routing-scope

更新:

另一种方法是依次使用两个命令:

ng generate module --name am && ng generate component --name ac --module am --skip-tests --dry-run 
Run Code Online (Sandbox Code Playgroud)

&&表示仅当command1 执行成功完成时才执行command2。

请注意,vscode 集成终端不支持 && ,可以在此处找到可能的解决方法

结果应该是这样的:

在此输入图像描述

我使用 Angular CLI 版本 10,但 Angular CLI v11 应该会产生相同的结果。


PMO*_*948 5

根据这篇文章,您可以--skip-tests在生成整个项目时添加标志,也可以生成单个组件。从逻辑的角度来看,您不能在模块上应用标志是有道理的,因为模块不是用测试文件生成的。

要对所有未来生成的代码进行更改,请angular.json通过将 加入skipTests:true到原理图部分来修改您的文件。

 "schematics": {
        "@schematics/angular:component": {
          "style": "scss",
          "skipTests": true
        },
        "@schematics/angular:class": {
          "skipTests": true
        },
        "@schematics/angular:directive": {
          "skipTests": true
        },
        "@schematics/angular:guard": {
          "skipTests": true
        },
        "@schematics/angular:module": {
          "skipTests": true
        },
        "@schematics/angular:pipe": {
          "skipTests": true
        },
        "@schematics/angular:service": {
          "skipTests": true
        }
     }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,您链接的文章实际上间接包含答案,即手动编辑“angular.json”中的“原理图”,在“@schematics/angular:component”下添加“skipTests”: true。我尝试了一下,它有效,这对我来说是最好的选择。如果您想将其添加到您的答案中,我相信我可以将其标记为正确。 (2认同)