Родительское устройство не удалось в NCrunch - TestContext_proxy не может быть преобразован - PullRequest
0 голосов
/ 11 января 2019

Я получаю эту ошибку в NCrunch при запуске в тестах MS Test:

System.ArgumentException: объект типа 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext_proxy' не может быть преобразован в тип 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext'.

Решение содержит множество проектов MS Test 1 и MS Test 2. Все остальные тесты этого проекта работают нормально в NCrunch.

Все проекты MS Test 1 ссылаются на одну и ту же DLL-библиотеку MS Test, расположенную по адресу C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

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

1 Ответ

0 голосов
/ 11 января 2019

Оказывается, что рассматриваемый проект ссылался на один из других тестовых проектов, и этот ссылочный проект был изменен для использования MS Test 2.

Косвенная ссылка на другую версию MSTest означала, что NCrunch не знал, какую версию MSTest использовать, что вызвало исключение.

Проблема заняла какое-то время, потому что NCrunch был настроен только на выполнение проверенных тестов, и ни один из этих тестов не изменился некоторое время.

Подобная проблема обсуждалась в этой теме на форуме NCrunch :

Ваш тестовый проект ссылается на две разные версии MSTest. Тестовый проект напрямую ссылается на MSTest 2017 (Microsoft.VisualStudio.TestPlatform.TestFramework), но косвенно ссылается на более раннюю версию MSTest через Voodoo.TestData (Microsoft.VisualStudio.QualityTools.UnitTestFramework). NCrunch не знает, какую версию использовать, поэтому устанавливает время выполнения среда для старой версии. Это приводит к TestContext построенный для более старой версии MSTest, передаваемой в Метод AssemblyInitialize ориентирован на более новую версию, и мы в конечном итоге взрыв.

...