- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

После этого «богатства» я начал исселедовать встроенные (или альтернативные) решения.
Прежде всего, чисто студия не поддерживает тесты от nunit-а, но дебагировать тесты можно с помощью самого NUnit таким вот извращенным способом:
Есть ли жизнь без Resharper а — 2?
где
«Start external program»: C:Program Files (x86)NUnit 2.6.2binnunit.exe
«Command line arguments:» mock-assembly.dll /fixture:NUnit.Tests.TestAssembly.MockTestFixture
«Working directory»: D:MyMyProjectsMySharperNUnit-2.6.2-srcNUnit-2.6.2binDebugtests

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

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

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 [6]
youtrack.jetbrains.com/issue/RSRP-380922 [7]

Возможности встроенного окна «Test Explorer» с лихвой перекрыты решарпером, может быт, за исключеним группировки «Group by | Duration» или «Group by | Traits» (как красиво перевести не знаю, гугл перевел так: «Группе черты» [8]), что позволяет группировать тесты по разным другим свойствам (времени работы, атрибутам самих тестов).
пример группировки:
Есть ли жизнь без Resharper а — 2?

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

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

Спасибо,
Игорь.

Автор: constructor

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/testing/40419

Ссылки в тексте:

[1] делать навигацию в студии и без решарпера: http://habrahabr.ru/post/189024/

[2] тестового фреймворка nunit: http://www.nunit.org/

[3] тут: http://www.jetbrains.com/resharper/features/unit_testing.html

[4] адаптер: http://nunit.org/index.php?p=vsTestAdapter&r=2.6

[5] галереи: http://visualstudiogallery.msdn.microsoft.com/6ab922d0-21c0-4f06-ab5f-4ecd1fe7175d

[6] bugs.launchpad.net/nunit-vs-adapter/+bug/1203587: https://bugs.launchpad.net/nunit-vs-adapter/+bug/1203587

[7] youtrack.jetbrains.com/issue/RSRP-380922: http://youtrack.jetbrains.com/issue/RSRP-380922

[8] гугл перевел так: «Группе черты»: http://translate.google.com/#en/ru/Group%20by%20traits

[9] Источник: http://habrahabr.ru/post/189200/