Grundsätzlich möchte ich MSTest anweisen, vor dem Start einer Reihe von Testläufen ein wenig Code auszuführen. Im Wesentlichen möchte ich das Gleiche tun, als Code einzufügen Main()
.
Der Grund, warum ich dies tun möchte, ist, dass ich während meiner Integrationstestläufe eine Protokollierung mit log4net durchführen möchte. Ich kann das log4net.Config.XmlConfigurator
Assembly-Attribut nicht einfach verwenden , da es zum Zeitpunkt des Lesens in meiner Testassembly bereits aufgerufen wurde LoggerManager
. In der Dokumentation wird empfohlen, log4net explizit am Codeeingabepunkt zu konfigurieren - aber wo ist das in meinen Tests?
Ich muss in der Lage sein, meine Tests in TestDriven.NET und MSTest Runner auszuführen.
and contains methods that are marked with the TestMethod attribute
.Zum Abschluss sind dies die Optionen "Code vor ausführen" für MSTest:
[AssemblyInitialize]
diese Option , um Code einmal pro Assembly auszuführen, bevor ein Test in dieser Assembly ausgeführt wird.[ClassInitialize]
diese Option , um Code einmal pro Klasse vor jedem Test in der Klasse auszuführen, in der die Methode definiert ist.[TestInitialize]
diese Option , um Code vor jedem Test in der Klasse auszuführen, in der die Methode definiert ist.quelle
Ich sehe dies im MS Test-Header.
Dies würde vor den Tests in einer Klasse laufen.
Klingt so, als ob Sie vor allen Tests etwas ausführen möchten.
Es gibt auch die Setup-Skriptoption in der Testlaufkonfiguration.
quelle