2011-01-04 9 views
34

Gibt es eine Möglichkeit, eine benutzerdefinierte Nachricht zum Ergebnis einer Testmethode hinzuzufügen? Ich möchte eine Stoppuhr auf einen Teil des Codes setzen, um zu sehen, wie lange er läuft. Ich muss nicht testen, dass es innerhalb eines bestimmten Zeitrahmens läuft, möchte nur im Ergebnisfenster sehen, was die verstrichene Zeit war.Benutzerdefinierte Nachricht zum Komponententestergebnis hinzufügen

Antwort

61

Angenommen, Sie MSTest verwenden, können Sie

System.Diagnostics.Trace.WriteLine("Hello World"); 

Zur Ausgabe verwenden, was auch immer Sie möchten. Es wird in den vollen Ergebnissen des Testläufers angezeigt.

+0

Das hat funktioniert. Aber gibt es trotzdem einen Namen für die Ausgabe, sagen wir mal, um die übergebenen Testdaten zu erfassen. –

6

Das obige Beispiel nicht für mich arbeiten, aber das folgende tat:

var result = routeManager.UpdateWalkingOrder(previouspremiseFuncLoc, premiseFuncLoc, out message); 

Assert.AreEqual(true, result, message); 

Wo Nachricht ein Fehler ist, ich möchte in der Fehlermeldung Dialog meines Testergebnis angezeigt werden soll. Im obigen Beispiel gebe ich Fehler zurück, die beim Ausführen dieser Funktion erfasst wurden, und zeige sie in meinen Testergebnissen an, was eine große Hilfe beim Debugging ist.

In Ihrem Fall könnten Sie nur die Laufzeit anzeigen.

+4

Dies funktioniert nur, wenn die Assertion fehlgeschlagen ist. – Schaliasos

+0

Und es fügt den Testprotokollen einen "Fehler" hinzu. –

1

Abhängig von der Länge der Nachricht können Sie verwenden. Es wird zu den Testergebnissen hinzugefügt, Spaltenname Output (StdOut), damit Sie es sehen können, ohne in Testlaufdetails zu gehen.

Ich finde es nützlich, einige sehr allgemeine Informationen auszugeben, wie die Anzahl der getesteten Eigenschaften oder jeden anderen Beweis, dass die Tests tatsächlich ausgeführt wurden.

Wenn Sie keine Statusmeldung haben, was passiert, wenn jemand Ihren Code sabotiert und alles aus dem Körper der Testmethode gelöscht hat? Sie sind alle vorüber, aber es hilft überhaupt nicht.

5

Ich ging die gleiche Route und versuchte, eine Möglichkeit zu finden, eine Nachricht an Testergebnisse auszugeben. Sie können einfach speichern Sie Ihre elapsedtime in eine String und einfach zu verwenden:

Console.WriteLine(elapsedtime);

für mich funktionierte gut.

Verwandte Themen