Есть ли жизнь без Resharper-а - 2?

Источник: habrahabr
constructor

После проверки того, что можно как то делать навигацию в студии и без решарпера, решил исследовать следующий важный для меня сценарий: а именно unit тестирование в студии (с использованием тестового фреймворка nunit).

Решарпер довольно хорошо поддерживает возможность запуска тестов (реализованных с помощью nunit) прямо из студии. Краткое описание возможностей может быть найдено тут.

несколько скринов (решарпер):
запуск (дебагирование) теста:
image

просмоторщик тестов:
image

окно сессии тестирования
image

Еще нужно добавить экран с возможными опциями решарпера (одна параллельность чего стоит!):

После этого "богатства" я начал исселедовать встроенные (или альтернативные) решения.
Прежде всего, чисто студия не поддерживает тесты от nunit-а, но дебагировать тесты можно с помощью самого NUnit таким вот извращенным способом:

где 
"Start external program": C:\Program Files (x86)\NUnit 2.6.2\bin\nunit.exe
"Command line arguments:" mock-assembly.dll /fixture:NUnit.Tests.TestAssembly.MockTestFixture
"Working directory": D:\My\MyProjects\MySharper\NUnit-2.6.2-src\NUnit-2.6.2\bin\Debug\tests

И если теперь запустить тестовый проект через команду Debug / Start new instance, то поднимится NUnit с нужным тестовым классом и можно запускать тесты, а точки останова при этом будут работать.

Понятно, что такой способ очень "медленный". Для того что бы все-таки воспользоваться встроенным возможностями, авторы NUnit реализовали адаптер, который может быть инсталлирован с галереи.

image

Но, к сожалению мне так и не удалось запустить тесты с исходных кодов NUnit-а (Visual Studio 2013, Reshaper 8) из-за ошибки:

------ Run test started ------ Could not find test executor with URI 'executor://nunittestexecutor/'. Make sure that the test executor is installed and supports .net runtime version 4.0.30319.18213. ========== Run test finished: 0 run (0:00:43.9573953) ==========

Погуглив, обнаружил два открытых "тикета":
bugs.launchpad.net/nunit-vs-adapter/+bug/1203587
youtrack.jetbrains.com/issue/RSRP-380922

Возможности встроенного окна "Test Explorer" с лихвой перекрыты решарпером, может быт, за исключеним группировки "Group by / Duration" или "Group by / Traits" (как красиво перевести не знаю, гугл перевел так: "Группе черты"), что позволяет группировать тесты по разным другим свойствам (времени работы, атрибутам самих тестов).
пример группировки:

Пробовал запускать тесты в дргих условиях: иногда получалось, но на глаз, гораздо медленнее чем решарпером.
Также обнаружен статус теста прямо над самим тестом:

синия иконка означает, что тест еще не был запущен.
интересно также, что студия почему то не дает запустить тест прямо с код редактора, но дает запустить тест с метода, который вызывается тестом:

похоже на баг.

Итого, в принципе, как то, работать в студии с nunit тестами можно (особенно когда починят адаптер). Кроме того (в независимости от решарпера), есть пару интересных вещей, которые расширяют возможности программиста.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=34073