Может ли resharper перейти к файлу, который содержит модульные тесты? - PullRequest
3 голосов
/ 21 сентября 2011

Можно ли каким-то образом связать или использовать какое-то соглашение, чтобы я мог переходить между моими модульными тестами для данного класса?

Кроме того, создавая короткие пути для перехода между интерфейсом, реализациями?

(сочетания клавиш)

Пример:

IUserService UserService UserServiceTests

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

Ответы [ 7 ]

6 голосов
/ 21 мая 2016

Я только что реализовал эту функцию в TestLinker , который является расширением ReSharper 2016.1. Его можно установить из галереи ReSharper.

Demo

2 голосов
/ 07 мая 2015

Как уже упоминалось, вы можете сделать это с помощью плагина TestCop ReSharper ( ссылка на галерею ).

Он связывает тестируемый класс с тестовым прибором с помощью регулярных выражений для идентификации имен классов и пространств имен. Вы можете настроить их в соответствии со своими потребностями, но я обнаружил, что будет достаточно проб и ошибок, чтобы получить это право на существующий код.

После того, как все настроено, вы можете переходить назад и вперед с помощью сочетания клавиш. Он также может создавать такие вещи, как создание TestFixture или класса для вас.

2 голосов
/ 21 сентября 2011

Можно ли каким-либо образом связать или использовать какое-либо соглашение, чтобы я мог переходить между моими модульными тестами для данного класса?

Для перехода между модульными тестамиданного класса, запустите ReSharper's Find Usages для имени класса и, как только у вас появятся результаты в окне инструмента Find Results , сгруппируйте их так, чтобы помочь сосредоточиться на использовании вопределенная часть вашей базы кода - например, по проекту и типу.Это позволит обнаружить использование в вашем тестовом проекте.Оттуда вы можете быстро перейти от Find Results к фактическому использованию в коде.В качестве альтернативы вы можете использовать ReSharper Перейти к использованию символа , который работает аналогичным образом, но отображает результаты поиска во всплывающем меню, а не сбрасывает их в Поиск результатов .

Если ваши тестовые классы содержат метаданные, показывающие, какую бизнес-логику они охватывают, это поможет еще лучше дифференцировать использование, которое вам необходимо.Например, если вы используете MSpec, тестовые классы помечаются атрибутом Subject : [Subject(typeof (MyCoveredClass))] Это удобно, поскольку использование этого атрибута очень хорошо видно, и переход к ним приводит вас непосредственно к объявлениямваши тестовые классы: Find MSpec test classes that cover a particular class

С NUnit и MSTest это немного сложнее, поскольку их атрибуты принимают в качестве параметров строки, например: [TestProperty("TestKind", "MyCoveredClass")].Чтобы найти такое использование MyCoveredClass, вам нужно будет использовать ReSharper's Advanced Usages Advanced и включить опцию Текстовые вхождения .

Кроме того, создание ярлыков для перехода между интерфейсом, реализациями?

Что касается перехода в цепочке наследования, ReSharper предоставляет несколько вариантов, включая Введите Иерархия (ReSharper> Проверить> Иерархия типов) и Перейти к реализации (ReSharper> Перейти> Перейти к реализации):

Navigating throughout inheritance chains with Go to Implementation and/or Type Hierarchy

1 голос
/ 21 сентября 2011

ReSharper не имеет специальной функции Goto Test / Code, кроме навигации по списку использований.

Тем не менее, TestDriven.NET имеет эту функцию , которая использует соглашения об именах для поиска однорангового узла «Тест / код», так что вы можете переворачивать его назад и вперед.

Кроме того, создание ярлыков для перехода между интерфейсом Реализации?

ReSharper имеет эту функцию. Использование схемы Visual Studio:

  • Alt + Home перемещается к базе класса, если их несколько, в контекстном меню их перечисляются
  • Alt + End перемещается вниз по иерархии наследования и ведет себя как Alt + Home

Ctrl + U и Ctrl + Alt + B, соответственно, эквивалентны схеме ReSharper 2.x / IDEA.

0 голосов
/ 03 марта 2017

С помощью ReSharper и NUnit для перехода от теста к предмету вы можете использовать свойство TestOf атрибута TestFixture.Просто нажмите Ctrl + клик на MyClass в файле теста:

[TestFixture(TestOf = typeof(MyClass))]
public class MyClassTest

Чтобы перейти от объекта к тесту, используйте команду ReSharper Найти использование .

0 голосов
/ 01 мая 2015

Вы можете использовать расширение ReSharper TestCop

Этот плагин предназначен для использования с mstest & nunit, но должен работать с любой другой платформой unittest, для которой требуется назначить атрибут тестирования.

0 голосов
/ 21 сентября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...