Как запускать и отлаживать тесты nunit в Visual Studio 2008 на 64-битной Windows 7?

Я заменил свою машину разработчика (WinXP / 32bit) на новую (Windows 7 / 64bit). Теперь у меня проблемы с запуском теста NUnit из Visual Studio 2008. Я использую последнюю сборку TestDrivenNet.

Я ищу:

  • а) как заставить TestDrivenNet работать на Win7 / 64
  • б) ищем предложения по альтернативному исполнителю тестов. Предпочтительно бесплатный.

Что работает на WinXp / 32 (и не работает на Win7 / 64):

  • запустить один тестовый метод внутри VS.NET
  • отлаживать один тестовый метод внутри VS.NET
  • запускать все тесты в одном классе внутри VS.NET

Симптомы на Win7 / 64:

  • при попытке запустить тест бегун сообщает: «0 пройдено, 0 не выполнено, 0 пропущено». Похоже, он не может найти никаких тестов в моем классе.
  • протестировано с TestDriven.NET-2.22.2468 (RTM) и 2.23.2497 (бета). Те же результаты.

Вопрос:

  • Можете ли вы подсказать хороший рабочий nunit test runner для Win7 / 64? Бесплатный вариант предпочтительнее.
  • Есть предложения, как заставить работать testdriven.net runner?

person Martin Vobr    schedule 16.09.2009    source источник


Ответы (2)


Я использую 64-разрядную версию win7 с TD.NET 2.22.246, и она отлично работает. Существуют только другие бегуны Visual Studio: mstest (запускается только как 32-битный процесс) и TestMatrix (не бесплатно)

Чтобы проверить, является ли проблема 64-битной, вы можете собрать тестовый проект как x86 и запустить тесты с TD.NET. В этом случае TD.NET будет работать как 32-битный процесс - вы можете проверить это с помощью диспетчера задач и просмотрев ProcessInvocation.exe.

Если тесты запускаются, то это 64-битная проблема. если это не удается, возможно, проблема в другом. Используете ли вы в своих тестах другие инструменты? освещение, издевательство и т. д., может проблема в другом месте?

person Ohad Horesh    schedule 17.09.2009
comment
В SharpDevelop IDE есть интеграция с NUnit, но вам также необходимо изменить проекты на x86, чтобы все работало гладко. - person Lex Li; 17.09.2009
comment
Спасибо за комментарий. SharpDevelop может создавать 64-битные сборки, но не может запускать их с помощью nunit? Странно, ведь у nunit есть 64-битный раннер. - person Ohad Horesh; 17.09.2009
comment
Я пробовал AnyCPU, x86 и x64 в качестве целевых платформ. Тот же результат. TestMatrix также не может запустить набор тестов. TDD может запускать тест при использовании Test с NUnit 2.4 и Test с NUnit 2.5 из контекстного меню решения. Тест с отладчиком и Тест с покрытием для решения показывает только 0 пройденных, 0 неудачных, 0 пропущенных сообщений. В диспетчере задач не отображаются ни ProcessInvocation.exe, ни ProcessInvocation86.exe (я пробовал использовать как включенный, так и отключенный процесс тестирования кэша между тестовыми запусками). Также не отображается значок в области уведомлений на панели задач. - person Martin Vobr; 18.09.2009
comment
Я также пробовал Resharper, и он смог запустить тесты. Если только тестовый раннер для Resharper продается отдельно. Остальная часть пакета resharper изменила весь редактор vs.net, что мне не очень нравится :-(. - person Martin Vobr; 18.09.2009
comment
другой инструмент: я тестирую это на чистом проекте vs.net 2008, только один класс с атрибутом класса [TestFixture], один метод с атрибутом [Test]. Net 2.0 в качестве целевой платформы, ссылка на nunit.framework.dll версии 2.2.7. Никакие другие инструменты не задействованы. - person Martin Vobr; 18.09.2009
comment
Теперь работает. Удаление Resharper, переустановка TestDriven.NET и установка (несвязанного) плагина DPack Visual Studio, по-видимому, изменили что-то в настройке VS.NET, поэтому тест можно запустить и отладить прямо сейчас. К сожалению, я понятия не имею, на каком шаге находится серебряная пуля :-( - person Martin Vobr; 22.09.2009
comment
У меня Resharper и TD.NET прекрасно работают вместе, так что, возможно, проблема в том, что TD.NET и DPack живут вместе на одной машине. Возможно, вы захотите сообщить об ошибке в TD.NET. В любом случае, рад, что вы его решили :) - person Ohad Horesh; 22.09.2009

У моего коллеги возникла точно такая же проблема, и на этот раз он может предложить минимальное решение. Репостю здесь - может быть, еще кому-нибудь поможет.

Похоже, основной причиной проблемы был Source Gear Vault 3.5.x. Дополнительную информацию см. В их сообщении на форуме поддержки.

Отправка следующего кода в реестр решила неработающий TD.NET:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}]
@="IServiceProvider"
[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\NumMethods]
@="4"
[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\ProxyStubClsid32]
@="{A4A1A128-768F-41E0-BF75-E4FDDD701CBA}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}]
@="IServiceProvider"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\NumMethods]
@="4"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\ProxyStubClsid32]
@="{A4A1A128-768F-41E0-BF75-E4FDDD701CBA}"
person Martin Vobr    schedule 30.09.2009
comment
Рад, что ты нашел решение. Подскажите, пожалуйста, устанавливает ли Source Gear надстройку к Visual Studio? - person Ohad Horesh; 30.09.2009
comment
SourceGear Vault устанавливается как новый подключаемый модуль системы управления версиями. Он не проявляется среди обычных надстроек в VS.NET, поэтому я догадываюсь, что это особый вид надстроек. Справедливо сказать, что Vault 3.5.x не поддерживается в Windows 7 и что они предлагают обновить его до версии 4.0. - person Martin Vobr; 01.10.2009