VS 2010 - модульные тесты по картографированию дисков - PullRequest
0 голосов
/ 18 ноября 2010

Из-за определенных настроек в моем устройстве разработчика я был вынужден переместить свой код в папки «Документы и настройки». Поскольку у нашей «любимой» VCS #? * &% $ £ могут быть проблемы с длинными путями к файлам в определенных сценариях, я сопоставил диск (V :), чтобы он указывал на код. Обычно это работает, за одним исключением: по какой-то причине встроенные в VS модули модульных тестов больше не могут запускать тесты. Я специально попробовал это с помощью TestDriven.NET и ReSharper Runner. Оба показывают одинаковое странное поведение: ошибок нет, тесты только НЕ запускаются.

0 пройдено, 0 не выполнено, 0 пропущено

Когда я открываю решение из C: \ Documents ... и запускаю тесты с использованием указанных бегунов, оно работает:

211 пройдено, 0 не выполнено, 0 пропущено

Сначала я заподозрил 64-битную проблему (мы находимся на Win7 Ultimate x64). Но для тестовых сборок установлено значение «Любой ЦП», оба бегуна могут обработать этот сценарий и перенаправить на соответствующие исполняемые файлы NUnit (... насколько я могу судить, исправьте меня, если я ошибаюсь!). Открытие тестовых сборок с помощью графического интерфейса NUnit из C: \ и V: \ работает нормально.

Я могу только предположить, что это связано с тем, что бегуны в VS не могут вызывать тесты, когда пути к файлам относятся к подключенному диску ... но это звучит довольно странно, поэтому я надеялся, что некоторые из вас видели это проблема и может дать несколько советов.

Чтобы свести это к вопросу:
У кого-нибудь когда-нибудь возникали проблемы с тестерами NUnit в VS 2010, которые не выполняли тесты, возможно, из-за того, что решение находится на подключенном диске?

Win 7 Ultimate x64
VS 2010 Ultimate
NUnit 2.5.8
TestDriven.NET 3
ReSharper 5.1

Ответы [ 2 ]

0 голосов
/ 10 декабря 2010

ОК, мы наконец нашли способ обойти это. Хотя мы действительно не решили проблему с нашим подключенным диском V: в качестве сетевого диска, он работает нормально, если вы создадите подключенный диск с помощью команды SUBST .

Разница здесь в том, что диск V: рассматривался как сетевое расположение, так как я создал отображение с помощью «карты сетевого диска» в меню проводника (которое, я считаю, эквивалентно команде NET ) , Это может привести к проблемам доверия, когда сборки вызываются между сетевыми и локальными дисками. Некоторые парни даже получали сообщения об ошибках во время сборок по типу

Необработанное исключение: System.Security.SecurityException: Эта сборка не позволяет частично доверенные абоненты.

Используя SUBST, наш V: диск указывает на локальное (= доверенное) местоположение, , и теперь все наши тесты работают как положено .

Чтобы создать подключенный диск с помощью SUBST, выполните следующие действия. В этом примере сопоставляется новый виртуальный диск «V» с расположением кода в папке пользователей (= [yourName]):

C:> subst v: C: \ Users [ваше имя] \ code

0 голосов
/ 22 ноября 2010

Я не пробовал.Но только мысль.Можете ли вы проверить путь к исполняемым файлам для TestDriven.Net, а также NUnit.Вы также можете проверить ссылку на тестовый проект.это относительный или абсолютный?

...