Wie schreibt man die Ausgabe in die [ClassInitialize ()] einer Unit Test Klasse?

8

Ich schreibe einige Komponententests für die Persistenzschicht meiner C # .NET Anwendung. Bevor und nachdem die Tests einer Testklasse ausgeführt werden, möchte ich einige Bereinigungen durchführen, um möglicherweise eingefügte Dummy-Werte zu löschen . Daher geschieht diese Bereinigung in Methoden, die mit den Attributen [ClassInitialize()] und% co_de gekennzeichnet sind %.

(Ich weiß, dass ein besserer Weg wäre, eine In-Memory-Datenbank zu verwenden, aber es ist nicht wirklich machbar, solange wir von vielen gespeicherten Procs abhängig sind ....)

Ich möchte einige Informationen über die Ergebnisse der Bereinigung ausgeben , aber ich kann keine Möglichkeit finden, die Ergebnisse in den Testergebnissen von VISUAL Studio 2010 zu erhalten.

Das mache ich bis jetzt:

%Vor%

Ich versuche context.WriteLine () ...

zu verwenden

Ich habe auch versucht, Console.WriteLine () mit denselben Ergebnissen zu verwenden.

Wie schreibt man auf die Standardausgabe im [ClassCleanup()] -Teil und wo kann man auf diese Ausgabe zugreifen?

    
tsimbalar 07.12.2010, 07:44
quelle

3 Antworten

12

Die [ClassInitialize] und [ClassCleanup] werden nur einmal für alle Tests in dieser Klasse ausgeführt. Sie sollten besser [TestInitialize] und [TestCleanUp] verwenden, die vor und nach jedem Test ausgeführt werden. Versuchen Sie auch, den vollständigen Test in einer Datenbanktransaktion zu verpacken. Auf diese Weise können Sie die Operation einfach rückgängig machen (indem Sie die Transaktion nicht festschreiben) und Ihre Datenbank bleibt in einem konsistenten Zustand (was für vertrauenswürdige automatisierte Tests unerlässlich ist).

Ein Trick für Integrationstests besteht darin, eine Basisklasse zu definieren, von der alle meine Integrationstestklassen erben können. Die Basisklasse stellt sicher, dass jeder Test in einer Transaktion ausgeführt wird und dass diese Transaktion zurückgesetzt wird. Hier ist der Code:

%Vor%

Viel Glück.

    
Steven 07.12.2010, 09:47
quelle
1

Die Ablaufverfolgungsausgabe von ClassInitialize und ClassCleanup wird in der Ergebniszusammenfassung angezeigt.

Sie können darauf zugreifen, indem Sie Folgendes tun

  1. Öffnen Sie die Testergebnisse windw [Test - & gt; Windows - & gt; Testergebnisse]
  2. In der oberen linken Ecke des [Test Results] Fensters sollte ein Link namens "Test run completed" sein.
  3. Klicke auf den Klick
  4. Es sollte ein Fenster mit der Überschrift "Result Summary" geöffnet werden und es wird die Debug-Trace angezeigt, die während ClassInitialize und ClassCleanup
  5. erstellt wurde
Hasani Blackwell 17.12.2012 15:26
quelle
0

Sie können die Konsolenausgabe bei jedem Test anzeigen, wenn Sie im Bereich Testergebnisse auf die Testmethode doppelklicken. Es ist auch in der .trx XML-Ergebnisdatei vorhanden.

Wenn Sie zusätzlich die "DEBUG-Konstante definieren" angeben, können Sie die   %Code% .. was im Bereich "Ausgabe" endet.

    
stolsvik 23.03.2012 15:21
quelle
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '356208',
    'url' => 'how-to-write-output-in-the-classinitialize-of-a-unit-test-class',
];

$_SESSION = [
    '__flash' => [],
];