Gibt es eine Möglichkeit, ng test
für eine einzelne Datei anstatt für die gesamte Testsuite auszuführen ? Im Idealfall möchte ich beim Bearbeiten einer Datei eine möglichst schnelle Rückkopplungsschleife erhalten, karma
führt jedoch bei jedem Speichern die gesamte Suite aus. Dies ist etwas langsam, wenn Sie eine ausreichend große Testsuite erstellen.
Dies unterscheidet sich von der Ausführung nur einer Testspezifikation mit angle-cli darin, dass es bei dieser Frage um die Ausführung einer einzelnen Spezifikation geht. Hier geht es darum, eine einzelne Datei auszuführen. Die Lösung beinhaltet dasselbe Jasmine-Spezifikationsmerkmal, aber die Art der Frage unterscheidet sich geringfügig.
angular
jasmine
angular-cli
karma-runner
Elliot Larson
quelle
quelle
Antworten:
Ich habe festgestellt, dass Jasmine es Ihnen ermöglicht, ein (für den Fokus?) Präfix
describe
undit
Methoden zu verwendenf
. Alsofdescribe
undfit
. Wenn Sie eine dieser Methoden verwenden, führt Karma nur die relevanten Tests durch. Um die aktuelle Datei zu fokussieren, können Sie einfach die oberste Ebene nehmendescribe
und in ändernfdescribe
. Funktioniert für meine Zwecke.quelle
Es ist erwähnenswert, dass Sie einen bestimmten Test deaktivieren können, ohne durch
xdescribe
und zu kommentierenxit
Und wie schon jemand gesagt hat, wenn Sie sich dann
fdescribe
und auf einen Test konzentrieren wollenfit
quelle
Dies kann heutzutage über die
include
Option erreicht werden. https://angular.io/cli/test#optionsEs ist ein Glob-Match, also als Beispiel:
Ich kann es nicht in den Versionshinweisen zu 8.1.0 finden , aber @Swoox erwähnt, dass dies eine Funktion nach der CLI-Version ist
8.1.0
. Danke, dass du das herausgefunden hast.quelle
Ich habe festgestellt, dass
ng test
es eine zusätzliche Option gibt,--include
die Sie verwenden können, um Tests für eine einzelne Datei, ein bestimmtes Verzeichnis oder eine Reihe von Dateien ausführen zu können:ng cli docs
quelle
Sie können
src/test.ts
die folgende Zeile aufrufen und ändern:const context = require.context('./', true, /\.spec\.ts$/);
zu
const context = require.context('./', true, /**yourcomponent.component**\.spec\.ts$/);
quelle
Visual Studio-Codeerweiterung
Am einfachsten ist es, die Erweiterung vscode-test-explorer zusammen mit dem untergeordneten Winkel-Karma-Test-Explorer und dem Jasmin-Test-Adapter zu verwenden . Sie erhalten eine Liste der aktuellen Tests, die Sie einzeln ausführen können, wenn Sie möchten:
Dies ist die gleiche Antwort, die ich auf diese Frage gegeben habe . Dort gibt es einige weitere Details.
quelle
Verwenden von ng test --main file.spec.ts
quelle
Sie müssen gehen
src/test.ts
und können den folgenden Zeilennummerncode 18 ändern:zu
quelle
Funktioniert, wenn Sie Ihre Spezifikationsdatei als Parameter angeben.
Beispielsweise:
ng test foo.spec.ts
Hoffe das hilft.
quelle