Unter Verwendung von Mocha, um node.js Unit Tests durchzuführen, erhalte ich z.B. diese Ausgabe:
%Vor% Warum bekomme ich für zwei Testfälle die Testzeit (65/53 ms), aber nicht für die anderen zwei Fälle? Gibt es eine bestimmte Option? Ich habe nur --slow
gefunden, aber nicht mehr.
Add: Wenn die Tests langsam sind, bekomme ich mal für alle Testfälle:
%Vor%es scheint, wenn die Testfälle sehr schnell sind, dann bekomme ich keine Zeit ..?
Das Verhalten, das Sie bemerkt haben, ist das Standardverhalten von Mocha. Sofern nicht anders angegeben, erhalten Sie beim Ausführen von Mocha an der Befehlszeile den spec
-Reporter (dessen Klassenname Spec
ist).
Alle mit Mocha gebündelten Reporter basieren auf dem Base
-Reporter, der diesen Code hat:
Sie können dort sehen, dass Tests, die mehr als die Anzahl von Millisekunden dauern, die als langsam angesehen werden (Option --slow
in der Befehlszeile, Standard 75 ms) als slow
markiert sind. Diejenigen, die mehr als die Hälfte dieser Zeit benötigen, sind als medium
markiert, und diejenigen, die weniger als diese Zeit benötigen, sind als fast
gekennzeichnet.
Der Code für den Spec
-Reporter tut dies:
Dieser Code wird ausgeführt, nachdem derjenige im Base
-Reporter ( Base
initialisiert vor Spec
) ist. Zu dem Zeitpunkt, zu dem der Handler im vorherigen Code-Snippet ausgeführt wurde, wurde der Test als slow
, medium
oder fast
markiert. Wie Sie sehen können, wird Mocha die Zeit nur dann melden, wenn der Test nicht schnell ist.
Sie können die Anzahl der Fälle erweitern, in denen Mocha die Uhrzeit meldet, indem Sie --slow 0
an die Befehlszeile übergeben. ( --slow -1
deaktiviert die Zeitberichterstattung vollständig.) Sie können jedoch theoretisch Tests erhalten, die 0ms dauern, und diese Tests werden als schnell angesehen und haben keine Zeit gemeldet.
Wenn Sie die Zeitberichte für jeden Test erzwingen und einen Reporter verwenden möchten, der wie der spec
-Reporter funktioniert, sehe ich keinen anderen Weg, als einen eigenen benutzerdefinierten Reporter zu verwenden.