NUnit 2.5.6 + PartCover 2.0 / 4.0 = Мои классы не отображаются

Резюме: я могу запускать модульные тесты и покрытие кода, но отчет включает только классы NUnit, а не классы моего приложения.

Раньше я успешно использовал PartCover. В этот раз все было не так. Я попробовал последнюю версию PartCover (4.0) с пониженной версией до последней версии (2.0), обе с NUnit 2.5.6.

Я создал простую библиотеку классов .NET 4.0 (также пробовал это с веб-приложением, в котором есть проект, являющийся библиотекой классов) с одним классом в некотором пространстве имен и двумя тестовыми методами в другой библиотеке в другом классе.

NUnit / PartCover установлен правильно; Я могу запускать тесты NUnit как в NUnit, так и через PartCover (я вижу, как они работают и говорят «2 пройдено»), но отчет показывает мне только пространства имен NUnit. (Да, я использую + [] в качестве правила покрытия.)

Любые идеи? Как бы мне ни нравился NUnit, я бы хотел видеть покрытие для моих собственных классов: o)

И я также попытался выровнять пространства имен test-DLL и code-DLL, но безрезультатно.

Изменить: я попытался повторно запустить мой ранее работавший образец кода год назад; все тесты выполняются, но фактические пространства имен проекта не отображаются. Здесь есть подсказка, которая, кажется, подразумевает, что это зависит от используемой вами версии NUnit: http://sourceforge.net/projects/partcover/forums/forum/605222/topic/3308367 (и да, я уже пробовал установить флажок" отчет о домене приложения ")

Я пробовал NUnit 2.5.5.x и 2.5.6.x, и оба дали одинаковые результаты.

Изменить: похоже, что эта вилка официальной версии 4.0 работает, хотя и время от времени (Google для вилки PartCover, я не могу добавить больше гиперссылок)


person ashes999    schedule 27.07.2010    source источник
comment
Мне бы хотелось. Отправьте информацию о своей кредитной карте, и я сразу же приступлю к работе: o) Серьезно, я единственный разработчик, работающий над небольшими низкопрофильными проектами. PartCover великолепен, потому что он бесплатный и ИСПОЛЬЗУЕТСЯ, чтобы работать для меня; поэтому я хотел бы, чтобы он снова заработал, вместо того, чтобы переключаться на то, что я не могу себе позволить прямо сейчас.   -  person ashes999    schedule 27.07.2010


Ответы (2)


Безумие. По-видимому, нажатие кнопки «Пауза / разрыв» на клавиатуре после того, как NUnit распечатает сводку общего числа пройденных / неудачных попыток, и примерно одну секунду ожидания второго сообщения «CoreProfiler выключен» заставляет все работать.

Конечно, это не может быть реальным решением. Конечно, я могу настроить командный файл, который будет спать примерно через 1 секунду после выполнения NUnit, но это похоже на серьезный взлом.

person ashes999    schedule 27.07.2010
comment
У меня работает: / попробуйте вместо этого этот командный файл (использует ping как медленную паузу). Просто скажите PartCover использовать этот командный файл вместо nunit-console.exe. nunit-console.exe% 1% 2% 3% 4% 5% 6% 7% 8% 9 Быстрый сон !! ping 127.0.0.1 -n 3 ›нуль - person ashes999; 03.08.2010

Правильный способ справиться с этим - добавить необходимую среду выполнения в конфигурацию nunit. Вы заметите, что NUnit работает в среде CLR 2.0 вместо 4.0. На этот вопрос по SO есть множество ответов, но я нашел вот этот во-первых. Одно это исправило для меня. Обратите внимание, ваша версия среды выполнения может немного отличаться. Возможно, вам потребуется подтвердить.

person kakridge    schedule 16.03.2011