web-dev-qa-db-fra.com

Angular 6 + CLI (TypeScript) - Comment arrêter de générer des fichiers de test .spec.ts

Je sais que c'est une mauvaise pratique, mais jumelle avec moi:

J'utilise Angular-CLI et en particulier ng g pour générer toutes mes classes. Cependant, aucun fichier de test *.spec.ts ne m'intéresse et je sais qu'il existe deux indicateurs (--inline-template, --inline-style) pour gérer les CSS et HTML en ligne au lieu fichiers séparés . et pour les spécifications l'indicateur par défaut est défini sur true --spec

Donc, pour chaque parcours, oui, je peux le faire ng g c foo --it --is --spec=false

Mais comment désactiver la création de fichiers de test globalement? y at-il un réglage par défaut pour cela?

Franchement, j'ai fait des choses comme (ça n'a pas marché) :

ng set spec=false --global 

Nous avons ensuite essayé de configurer le fichier de paramètres ts src/tsconfig.json en remplissant le tableau d'exclusion.

"exclude": [
    "**/*.spec.ts"
]
17
Mohammad Kawsara

Vous pouvez exécuter cette commande pour désactiver la génération de fichier de spécification pour un type de fichier spécifique:

ng set defaults.spec.FILETYPE false

Par exemple:

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

Sinon, vous pouvez simplement désactiver toute génération de fichier de spécifications à partir du fichier angular-cli.json.

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

Pour angulaire 6>

La configuration (pour la génération de spécifications, par exemple) peut être effectuée manuellement ou avec l’interface CLI angulaire.


Configuration manuelle de la CLI angulaire

Configurer manuellement dans angular.json:

Toutes les options configurables par type de fichier sont affichées ( Options schématiques ).

{
  // ...
  "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
    }
  }
  // ...
}

Configuration CLI angulaire avec CLI angulaire

ERREUR:

La commande ng set defaults.spec.component false entraîne l'erreur: get/set have been deprecated in favor of the config command. 

ng set got changed to ng config.

Utilisation de la CLI angulaire (utilisation de la commande config):

Les paramètres de génération de spécifications, de modèles en ligne, de style en ligne, etc. dans angular.json sont maintenant conservés dans le schematics.@schematics/angular.<file-type>.<setting>.

Exécutez ng config schematics.@schematics/angular.component.spec false pour configurer les spécifications des composants. Cette commande ajoute le paramètre dans la propriété schematics du fichier angular.json (présenté ci-dessous).


Fichier d'espace de travail CLI angulaire (angular.json) sur Github angulaire

Options schématiques dans schema.json

Comment faire en X angulaire CLI v6

25
Brampage

Si vous utilisez la v6 et devez modifier votre fichier angular.json

Vous pouvez éditer les schémas de votre projet.

"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
    }
  },
15
Paul S

Juste pour mettre à jour la réponse de Sabbir Rahman :

Dans la version 1.0.2 de la CLI, vous devrez définir le fichier de spécification sur false pour chaque type. Un exemple est inclus ci-dessous:

"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
    }
  }
11
Mark Valenzia

vous pouvez ajouter --skipTests=true|false si true, il ne générera aucun spec.ts

exemple: ng g component componentName --skipTests=true

cette ligne ne générera aucun spec.ts fichiers 

0
Sai Sundeep