Ich benutze Karma für Lauftests. Ich habe viele Tests und alle Tests sind sehr langsam. Ich möchte nur einen einzigen Test ausführen, um weniger Zeit zu verbringen, da alle Tests etwa 10 Minuten dauern.
Ist es möglich ?
Vielen Dank.
Ich benutze Karma für Lauftests. Ich habe viele Tests und alle Tests sind sehr langsam. Ich möchte nur einen einzigen Test ausführen, um weniger Zeit zu verbringen, da alle Tests etwa 10 Minuten dauern.
Ist es möglich ?
Vielen Dank.
describe
nachfdescribe
undit
nach ändernfit
Antworten:
Wenn Sie den Karma / Jasmin- Stapel verwenden, verwenden Sie:
... und:
Wenn Sie auf Karma / Mokka sind :
... und:
quelle
.only
oderfit
codiert und das Commit ablehnt, wenn es gefunden wird.Update: Karma hat sich geändert.
Verwenden Sie jetzt
fit()
undfdescribe()
f steht für fokussiert!
quelle
f
steht fürfocused
... irgendwie dumm, aber ich werde es nehmen lolFür Angular Benutzer!
Ich kenne zwei Möglichkeiten:
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:
Für mich war ich aufgrund dieses Fehlers nicht in der Lage, die Erweiterungsmethode zu verwenden , und so habe ich die
test.ts
Datei geändert (wie hier von Shashi angegeben ), nur um diese Antwort hier zu konsolidieren. Der Standardkontext sieht folgendermaßen aus:Sie sollten RegExp so ändern, dass es mit den Dateien übereinstimmt, die Sie testen möchten. Wenn Sie beispielsweise eine einzelne Datei mit dem Namen "my.single.file.custom.name.spec.ts" testen möchten, sieht dies folgendermaßen aus:
Weitere Details zu
require
Parametern finden Sie hier im Wiki .Derzeit gibt es ein offenes Problem zur Verbesserung des aktuellen Verhaltens. Sie können den Fortschritt auf der Github-Seite ( https://github.com/karma-runner/karma/issues/1507 ) verfolgen .
quelle
a) Sie können dem Karma-Startbefehl ein Muster übergeben, das Ihre einzelne Datei als Befehlszeilenargument beschreibt:
Quelle: https://gist.github.com/KidkArolis/fd5c0da60a5b748d54b2
b) Sie können eine Gulp- (oder Grunz-) Aufgabe verwenden, die Karma für Sie startet. Dies gibt Ihnen mehr Flexibilität bei der Ausführung von Karma. Sie können beispielsweise benutzerdefinierte Befehlszeilenargumente an diese Aufgaben übergeben. Diese Strategie ist auch nützlich, wenn Sie einen Überwachungsmodus implementieren möchten, der nur die geänderten Tests ausführt. (Der Karma-Überwachungsmodus führt alle Tests aus.) Ein weiterer Anwendungsfall besteht darin, nur Tests für Dateien mit lokalen Änderungen auszuführen, bevor Sie ein Commit durchführen. Siehe auch Gulp-Beispiele unten.
c) Wenn Sie VisualStudio verwenden, möchten Sie möglicherweise einen externen Tool-Befehl zum Kontextmenü des Solution Explorers hinzufügen. Auf diese Weise können Sie den Test über dieses Kontextmenü starten, anstatt die Konsole zu verwenden. Siehe auch
Wie führe ich benutzerdefinierte dateispezifische Befehle / Aufgaben in Visual Studio aus?
Beispiel Gulp-Datei
Beispieleinstellungen für ExternalToolCommand in VisualStudio:
quelle
Wenn Sie einen Karma-Test mit Winkel ausführen möchten, müssen Sie nur Ihre
test.ts
Datei ändern .Linie suchen
const context = require.context('./', true, /\.spec\.ts$/);
Wenn Sie die
your.component.spec.ts
Änderungszeile ausführen möchten, um:const context = require.context('./', true, /your\.component\.spec\.ts$/);
quelle
Das Ändern von it () in iit () sollte für die Ausführung eines einzelnen Tests funktionieren. In ähnlicher Weise können wir für den Block verify () ddescribe () verwenden.
quelle
fdescribe()
undfit()
wie brendan betontÄndern Sie Ihre Karma-Konfiguration so, dass nur der Test, den Sie ausführen möchten, anstelle eines vollständigen Verzeichnisses enthalten ist.
In den Dateien: [...]
Möglicherweise möchten Sie die Präprozessoren kommentieren, wenn Sie Ihren Test in Chrome debuggen müssen / möchten, um zu vermeiden, dass Ihre JS minimiert werden.
quelle
Ja, das ist ein alter Thread.
Die folgende Situation ist bei mir in den letzten Jahren 2 - 3 Mal aufgetreten. Mehr noch, wenn ich nicht viel Unit-Tests durchgeführt habe und darauf zurückgekommen bin.
Ich startete mein Karma und stellte fest, dass die Tests nach dem ersten Start innerhalb von 1 Sekunde abgeschlossen sein sollten, um jetzt 20 Sekunden zu dauern. Darüber hinaus wurde der Versuch, die Komponententests in Chrome zu debuggen, mühsam. Auf der Registerkarte "Netzwerk" wurden alle Dateien angezeigt, die pro Datei 2 bis 3 Sekunden dauerten.
Lösung: Ich wusste nicht, dass Fiddler offen war. Schließen Sie es und starten Sie Ihre Tests neu.
quelle
Antwortvorschlag für einen speziellen Angular / IE-Fall: Das einzige, was bisher für mich mit "karma-ie-launcher" funktioniert hat, um IE als Browser auszuführen, war das Ändern der Eigenschaft "include" von tsconfig.spec.json, um explizit darauf zu verweisen Zieltestdatei unter Verwendung eines universell qualifizierten Pfads und nicht von Globs, z. B. "C: \ Dateipfad \ my-test.spec.ts", für Kompilierungszwecke. "Zusätzlich" sollte die Datei test.ts entsprechend geändert werden, um sie auf Zwecke der Einschränkung der Testdatei auszurichten . Beachten Sie, dass der Cache zunächst im IE gelöscht werden muss, damit dieses Schema wirksam wird.
(Für Angular / Chrome-Fälle wäre eine Änderung von test.ts allein ausreichend.)
quelle