webentwicklung-frage-antwort-db.com.de

Angular 6 + CLI (TypeScript) - Stoppen der Erstellung von .spec.ts-Testdateien

Ich weiß, dass es eine Art schlechtes Praktizieren ist, aber paare mit mir:

Ich verwende Angular-CLI und insbesondere ng g, um alle meine Klassen zu generieren. Ich interessiere mich jedoch nicht für Testdateien *.spec.ts, und ich weiß, dass es zwei Flags (--inline-template, --inline-style) gibt, die anstelle von Inline-CSS und HTML verwendet werden getrennte Dateien .. und das Standardflag ist für true festgelegt --spec

Ja, für jeden Durchlauf kann ich dies tun ng g c foo --it --is --spec=false

Aber wie kann man die Erstellung von Testdateien global deaktivieren? Gibt es eine Standardeinstellung dafür?

Rashly, ich habe ein paar Sachen gemacht wie (das hat nicht funktioniert) :

ng set spec=false --global 

Dann wurde versucht, die Einstellungsdatei src/tsconfig.json zu konfigurieren, indem das Ausschluss-Array gefüllt wurde.

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

Sie können diesen Befehl ausführen, um die Generierung spezifizierter Dateien für einen bestimmten Dateityp zu deaktivieren:

ng set defaults.spec.FILETYPE false

Zum Beispiel:

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

Alternativ können Sie einfach die Generierung von Spec-Dateien aus der Datei angle-cli.json deaktivieren.

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

Für Winkel 6>

Die Konfiguration (z. B. für die Generierung von Spezifikationen) kann manuell oder mit der Angular-CLI vorgenommen werden.


Manuelle Angular CLI-Konfiguration

Manuell in angular.json konfigurieren:

Alle konfigurierbaren Optionen pro Dateityp werden angezeigt ( Schaltplanoptionen ).

{
  // ...
  "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-Konfiguration mit Angular CLI

ERROR:

Der Befehl ng set defaults.spec.component false führt zum Fehler: get/set have been deprecated in favor of the config command. 

ng set got changed to ng config.

Verwenden der Angular-CLI (Verwendung des Konfigurationsbefehls):

Die Einstellungen zum Generieren von Spezifikationen, Inline-Vorlagen, Inline-Styling usw. in angular.json werden jetzt im [email protected]/angular.<file-type>.<setting> beibehalten.

Führen Sie ng config [email protected]/angular.component.spec false aus, um die Spezifikation für Komponenten zu konfigurieren. Dieser Befehl fügt die Einstellung innerhalb der schematics-Eigenschaft in der angular.json-Datei hinzu (siehe unten).


Angular CLI-Workspace-Datei (angle.json) auf Angular Github

Schematische Optionen in schema.json

Wie mache ich X in Angular CLI v6

25
Brampage

Wenn Sie Version 6 verwenden, müssen Sie die Datei angle.json bearbeiten

Sie können die Schaltpläne für Ihr Projekt bearbeiten.

"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

Nur zum Aktualisieren Sabbir Rahmans Antwort :

In Version 1.0.2 der CLI müssen Sie die Spezifikationsdatei für jeden einzelnen Typ auf false setzen. Ein Beispiel ist unten aufgeführt:

"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

du kannst hinzufügen --spec=false

beispiel

ng g c home --spec=false

log wird sein

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

sie können --skipTests=true|false hinzufügen, wenn true keine spec.ts generiert.

beispiel: ng g component componentName --skipTests=true

diese Zeile generiert keine spec.ts -Dateien 

0
Sai Sundeep