В заголовке сказано: что происходит между TestMethods в модульных тестах MS Visual Studio?
У меня есть набор TestMethods в TestClass, у которого есть метод TestInitialize.
Метод TestInitialize внутренне загружает тип через отражение (например, Type.GetType("MyContainer, MyContainerAssembly")
). MyContainer - это класс, который наследуется от WindsorContainer (от Castle Windsor).
Когда я выбираю запускать все модульные тесты в решении, при первом вызове TestInitialize (для первого TestMethod) все работает хорошо. Когда второй TestMethod выполняется и вызывается TestInitialize, мой вызов Type.GetType возвращает значение null.
Я установил точку останова внутри метода TestInitialize и проверил это. Чтобы устранить проблему, я попытался в Немедленном Окне:
Assembly.Load("MyContainerAssembly")
который сработал ... тогда:
Assembly.Load("MyContainerAssembly").GetTypes()
а что ты знаешь? Он выдал исключение TypeLoaderException, сказав, что не может найти сборку Castle.Windsor. Проверен каталог bin \ debug для проекта модульного тестирования. Это там.
Итак, я попробовал:
Assembly.Load ( "Castle.Windsor")
который работал ... тогда:
Assembly.Load("Castle.Windsor").GetAssemblies()
... не удалось загрузить Castle.Core ... так что тогда
Assembly.Load("Castle.Core")
тогда
Type.GetType("MyContainer, MyContainerAssembly")
снова ... и он вернул экземпляр Type, а не ноль.
Мысли