Fondamentalement, je voudrais dire à MSTest d'exécuter un peu de code avant de se lancer dans une série de tests, ce que je voudrais faire est essentiellement la même chose que de coller du code Main()
.
La raison pour laquelle je voudrais faire cela est que je voudrais faire un peu de journalisation avec log4net pendant mes tests d'intégration. Je ne peux pas simplement utiliser l' log4net.Config.XmlConfigurator
attribut assembly car au moment où il le lit dans mon assembly de test, il a déjà appelé LoggerManager
. La documentation recommande de configurer log4net explicitement au point d'entrée du code - mais où est-ce dans mes tests?
Je dois pouvoir exécuter mes tests dans TestDriven.NET et MSTest runner.
and contains methods that are marked with the TestMethod attribute
.Pour terminer, voici les options «exécuter le code avant» pour MSTest:
[AssemblyInitialize]
pour exécuter le code une fois par assembly, avant l'exécution de tout test de cet assembly.[ClassInitialize]
pour exécuter le code une fois par classe, avant tout test dans la classe où la méthode est définie.[TestInitialize]
pour exécuter du code avant chaque test dans la classe où la méthode est définie.la source
Je vois cela dans l'en-tête MS Test.
Cela s'exécuterait avant les tests dans une classe.
On dirait que vous voulez exécuter quelque chose avant tous les tests.
Il existe également l'option de script d'installation dans la configuration de test.
la source