Почему мой метод TearDown выдает следующее исключение System.TypeLoadException?

Настройка

У меня есть TFS 2012, VS 2013 и Test Controller 2013 на моей машине под управлением Windows 8.1 x64.

Я установил виртуальную машину Windows 7 x86 и установил на нее VS 2012, VS 2013 и Test Controller 2012 (именно в таком порядке). Виртуальная машина — это мой тестовый контроллер.

Проблема

Я пытаюсь протестировать очень простой сценарий, в котором у меня есть тест закодированного пользовательского интерфейса (запрограммированный вручную; я не использовал функцию записи и воспроизведения), где Internet Explorer запускается с google.com, и я ищу термин калькулятор

Это прекрасно работает на моей машине. Однако, когда я пытаюсь запустить тест через Test Manager, я получаю следующую ошибку:

Метод TestCleanup CalculatorTest.TestCases.CalculateTest.TearDown вызвал исключение. System.TypeLoadException: System.TypeLoadException: не удалось загрузить тип «Microsoft.VisualStudio.TestTools.UITesting.ApplicationBase» из сборки «Microsoft.VisualStudio.TestTools.UITesting, версия = 11.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a»..

Браузер запускается с google.com, но вскоре после этого закрывается без выполнения поиска, и в диспетчере тестов отображается указанное выше сообщение об ошибке.

Может ли кто-нибудь помочь мне, пролив некоторый свет на причину этого?


person Rusty Wizard    schedule 06.08.2014    source источник


Ответы (2)


Похоже на проблему с версиями Visual Studio, и я предполагаю, что, поскольку у вас установлены как VS2012, так и 2013, загружается неправильная версия сборки. Я бы посмотрел на ссылку на сборку, которую не удалось загрузить, и проверил, что в ссылках для свойстваspecificversion установлено значение false. Если это не сработает, попробуйте удалить и снова добавить ссылку (например, версию фреймворка 2012 года), если это то, под чем вы работаете.

person Robert Anderson    schedule 06.08.2014
comment
Я попытался установить для свойства конкретной версии значение false, но, к сожалению, это не помогло. Я также попытался скопировать DLL для Microsoft.VisualStudio.TestTools.UITesting в папку, которая является частью решения, и добавил скопированную DLL в качестве ссылки на указанную библиотеку. Я думал, что это позволит избежать любых таких конфликтов версий, но, к сожалению, у меня все еще есть эта проблема. - person Rusty Wizard; 06.08.2014
comment
На какую версию .net framework вы ориентируетесь, 4 или 4.5. и вы хотите использовать vs 2012 или 2013? например если вы хотите использовать 2012 вместо 2013, иногда в местоположении проекта вы можете удалить файл .suo, затем щелкнуть правой кнопкой мыши и открыть с 2012. Также стоит попробовать скопировать локальное свойство ссылки, как указано ниже, что заставит это, чтобы использовать конкретную версию версии платформы сборки, на которую вы ориентируетесь. - person Robert Anderson; 07.08.2014
comment
Я установил 4.5 в качестве целевой платформы и намерен использовать VS 2013. Это только TFS и Test Controller 2012 года. Также я использую Microsoft Test Manager 2013. - person Rusty Wizard; 07.08.2014
comment
Еще одна вещь, которую нужно проверить — возможно, стоит попробовать следующее: в обозревателе решений щелкните правой кнопкой мыши решение, а затем — конфигурацию. Попробуйте изменить платформу активного решения на x86 или x64, а затем попробуйте перестроить, а затем еще раз запустить. - person Robert Anderson; 08.08.2014

попробуйте установить для копии local значение «true» для ссылки, а затем создайте сборку для тестирования с помощью MTM.

person Varun Bajpai    schedule 06.08.2014