Zasadniczo chciałbym powiedzieć MSTest, aby wykonał kawałek kodu przed uruchomieniem serii przebiegów testowych, zasadniczo to, co chciałbym zrobić, to to samo, co wklejenie kodu Main()
.
Powodem, dla którego chciałbym to zrobić, jest to, że chciałbym przeprowadzić logowanie za pomocą log4net podczas moich testów integracji. Nie mogę po prostu użyć log4net.Config.XmlConfigurator
atrybutu assemblera, ponieważ zanim odczyta go w moim zestawie testowym, już wywołał LoggerManager
. Dokumentacja zaleca jawne konfigurowanie log4net w punkcie wejścia kodu - ale gdzie to jest w moich testach?
Muszę mieć możliwość uruchamiania testów w programie TestDriven.NET i MSTest runner.
and contains methods that are marked with the TestMethod attribute
.Aby zakończyć, oto opcje „uruchom kod przed” dla MSTest:
[AssemblyInitialize]
do uruchamiania kodu raz na zestaw, przed uruchomieniem jakiegokolwiek testu w tym zestawie.[ClassInitialize]
do uruchamiania kodu raz na klasę, przed każdym testem w klasie, w której zdefiniowano metodę.[TestInitialize]
do uruchamiania kodu przed każdym testem w klasie, w której zdefiniowano metodę.źródło
Widzę to w nagłówku MS Test.
Byłoby to uruchamiane przed testami w jednej klasie.
Wygląda na to, że chcesz coś uruchomić przed wszystkimi testami.
Istnieje również opcja skryptu instalacyjnego w konfiguracji uruchomienia testowego.
źródło