web-dev-qa-db-ja.com

Angular 6 + CLI(TypeScript)-.spec.tsテストファイルの生成を停止する方法

私はそれが悪い習慣の種類であることを知っていますが、私とペアになります:

私はAngular-CLI、特にng gすべてのクラスを生成しますが、テストファイルには興味がありません*.spec.tsと2つのフラグ(--inline-template--inline-style)分離されたファイルの代わりにインラインCSSおよびHTMLを処理します。仕様の場合、デフォルトのフラグはtrueに設定されます--spec

実行ごとに、はい、できますng g c foo --it --is --spec=false

しかし、テストファイルの作成をグローバルに無効にする方法は?デフォルト設定はありますか?

Rashly、私は(動作しなかった):のようなことをしました

ng set spec=false --global

次に、ts設定ファイルを構成してみましたsrc/tsconfig.json除外配列に入力します。

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

Angular 6>

構成(仕様の生成など)は、手動で、またはAngular CLIを使用して実行できます。


手動Angular= 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
  }
},

Angular CLIを使用したAngular 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内で仕様、インラインテンプレート、インラインスタイリングなどを生成するための設定は、schematics.@schematics/angular.<file-type>.<setting>内に保持されるようになりました。

ng config schematics.@schematics/angular.component.spec falseを実行して、コンポーネントの仕様を構成します。このコマンドは、angular.jsonファイル内のスケマティックプロパティ内に設定を追加します。


Angular CLIワークスペースファイル(angular.json)on Angular Github

schema.json内の概略オプション

Xを行う方法Angular CLI v6

41
Brampage

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
    }
  },
25
Paul Story

このコマンドを実行して、特定のタイプのファイルのスペックファイル生成を無効にできます。

ng set defaults.spec.FILETYPE false

例えば:

ng set defaults.spec.component false // Won't generate spec files for .component files

または、angular-cli.jsonファイルからのすべてのspecファイル生成を無効にすることもできます。

{
  ...
  "defaults": {
    "spec": {
      "class": false,
      "component": false,
      "directive": false,
      "module": false,
      "pipe": false,
      "service": false
    }
  }
}
24
Sabbir Rahman

更新するだけ Sabbir Rahmanの答え

CLIのバージョン1.0.2では、個々のタイプごとに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
    }
  }
12
Mark Valenzia

あなたは付け加えられます --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)
4
Warren Clarin

あなたは付け加えられます --skipTests=true|false trueの場合、spec.tsは生成されません。

例:ng g component componentName --skipTests=true

この行はspec.tsファイルを生成しません

編集:

注:angular 7の時点で、このコマンドは、angularの公式Webサイトで言及されているにもかかわらず、機能しません。ここで https://angular.io/cli/generate#component

1
Sai Sundeep