Где находится выбор «Создать юнит-тесты»?

154

Я установил новую Visual Studio 2012 Ultimate.

Я создал тестовый проект с моим решением, и он содержит несколько стандартных тестов. Однако щелчок правой кнопкой мыши по новым методам больше не отображает контекстное меню «Создание юнит-тестов».

Смотрите Visual Studio 2010 Ultimate: введите описание изображения здесь

И Visual Studio 2012 Ultimate: введите описание изображения здесь

Есть идеи, почему это может быть?

ОБНОВИТЬ:

Решение для Visual Studio 2012 и 2013:

Microsoft признала это здесь и предлагает официальный патч для исправления. Скачивайте, устанавливайте и наслаждайтесь!

Houman
источник
это один и тот же проект или сборка mvc?
Даниэль А. Уайт
Это новые проекты MVC 4, созданные с нуля.
Хуман
Интересный. Что происходит, когда вы нажимаете «Выполнить юнит-тесты»?
Диего
2
я бы сообщил об этом как об ошибке.
Даниэль А. Уайт
4
VS 11 проделала большую работу в направлении от предоставления тестовой инфраструктуры через MSTest до предоставления подключаемой тестовой среды. Это может быть следствием этого решения. В любом случае я бы подал ошибку
JaredPar

Ответы:

86

Эта функция была вырезана из VS.

http://blogs.msdn.com/b/visualstudioalm/archive/2012/03/08/what-s-new-in-visual-studio-11-beta-unit-testing.aspx

Мастер создания модульного теста - В VS2010 вы можете щелкнуть правой кнопкой мыши метод в своем коде, и мы сгенерируем модульный тест в вашем тестовом проекте. Этот мастер был очень тесно связан с MS-Test и зависел от таких функций, как Private Accessors, чтобы выполнять свою работу, поэтому он был сокращен. Мы исследуем альтернативы здесь, но пока не имеем хороших решений.

РЕДАКТИРОВАТЬ Есть обходной путь : http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Даниэль А. Уайт
источник
16
Надеюсь, они придумали рабочее решение. В противном случае кажется большим шагом назад
Эндрю Гарри
3
Похоже, что третий вариант этого обходного пути больше не доступен в VS2013.
Сандер
Функциональность возвращается в VS2015 blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/… благодаря тем, кто проголосовал за это в visualstudio.uservoice.com/forums/121579-visual-studio/… , @furier: Может быть, вы голосовали за это?
LosManos
Я имею в виду, это было там 5 минут назад ... его просто нет сейчас - почему оно приходит и уходит?
BrainSlugs83
33

« Генератор Test Unit расширение» доступен

Модульное тестирование генератора Расширение

Чтобы добавить непосредственно из Visual Studio 2012/2013 IDE:

  1. Меню: Инструменты -> Расширения и обновления
  2. Нажмите: Онлайн -> Галерея Visual Studio
  3. Искать: «Генератор модульных испытаний»

MSDN Видео Демонстрация

Примечание: MSTest в VS 2012/2013 все еще отстой

Johnb
источник
28

Пункт меню остается на месте, но по неизвестным причинам он невидим в редакторе кода. Но вы можете использовать команды Visual Studio для запуска мастера модульного тестирования. Команда, которая вам нужна

EditorContextMenus.CodeWindow.CreateUnitTests

Откройте командное окно и введите команду там. Или введите команду псевдонима следующим образом

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

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

Еще один способ запуска мастера - это сочетание клавиш. В Visual Studio открыть

Tools -> Options -> Environment -> Keyboard

Введите «createunit» в текстовое поле «Показать команды, содержащее», чтобы отфильтровать команду CreateUnitTests, выберите ее. Выберите «Текстовый редактор» в поле «Использовать новый ярлык в» и нажмите нужный ярлык в текстовом поле «Нажать клавиши быстрого доступа» (например, Ctrl + T, Ctrl + C). Наконец, нажмите кнопку «Назначить». Наслаждайтесь!

intrueder
источник
7
Я не могу заставить это работать. Я установил курсор на метод. Нажмите на добавленный шорткод, но затем получите сообщение: Команда «EditorContextMenus.CodeWindow.CreateUnitTests» недоступна.
Ральф Янсен
Я пробовал на Visual Studio 2012 Ultimate с установленным обновлением, может быть, это имеет значение.
Злоумышленник
1
Я получаю ту же ошибку, что и LockTar, когда я пытаюсь это сделать. Таким образом, самый простой способ использовать модульное тестирование - создать новый проект модульного тестирования.
Саадан
Я не могу объяснить, почему вы получили ошибку, но я взял пробное
intrueder
Если мастер недоступен, см. Блог dl.my/2013/create-unit-tests-function-not-available-or-disabled или мой ответ ниже stackoverflow.com/a/15184716/52277
Майкл Фрейдгейм,
19

Вот как включить его снова:

Метод 1 - Командное окно

Если вам будет трудно, вы обнаружите, что команда для вызова Create Unit Tests ... на самом деле:

EditorContextMenus.CodeWindow.CreateUnitTests

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

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

Затем просто введите ut для запуска мастера.

Метод 2 - Сочетание клавиш

Следующий способ - перейти в Сервис-> Параметры-> Среда-> Клавиатура и установить комбинацию клавиш по вашему выбору.

Способ 3 - Снова включите контекстное меню Создать модульные тесты ...

Чтобы снова включить меню «Создать юнит-тесты ...», перейдите в «Инструменты» -> «Настройка» ..., чтобы открыть диалоговое окно «Настройка». В диалоговом окне «Настройка» перейдите на вкладку «Команды», установите переключатель «Контекстное меню» и выберите «Редактор контекстных меню | Окно кода.

Вы поймете, что пункт меню действительно доступен в контекстном меню. Разработчики VS были достаточно любезны, чтобы оставить это для нас.

Щелкните по пункту меню «Создать модульные тесты ...» и нажимайте кнопку «Вниз», пока она не будет включена или находится под командой «Выполнить тесты ...». Затем нажмите Закрыть.

Перезапустите Visual Studio 2012 и все! Контекстное меню будет доступно!

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

Чтобы все это работало, сначала вам нужно будет иметь проект модульного тестирования в своем решении. После создания проекта модульного тестирования вам нужно будет вручную добавить элемент модульного тестирования в проект, даже если проект разворачивается с одним из них. После того, как вы это сделаете, все будет работать так же, как в Visual Studio 2010. Вы можете безопасно удалить эти файлы UnitTest1.cs.

Источник (с изображениями, мне не хватает точек репутации, чтобы поставить их):
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps: читайте предостережения !!!!)

Себастьен Х.
источник
Обратите внимание, что мастер создания модульных тестов VS 2012 поддерживает генерацию тестов только для открытых методов, когда в предыдущей версии также поддерживались частные методы.
Майкл Фрейдгейм
3
Это мне очень помогло, большое спасибо. Я пропустил этап добавления фиктивного юнит-теста в моём средстве.
Танвеер Бадар
1
Вручную создание одного модульного теста важно. Глупо не уверен, почему пункт меню был отключен до тех пор.
indolentdeveloper
Нашел то же самое и здесь .. dawalaw.com/2013/enable-create-unit-tests-on-visual-studio-2012
Солнечный Тамби
9

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

>UT
Command "EditorContextMenus.CodeWindow.CreateUnitTests" is not available.

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

С помощью поста Дау Лоу « Создание модульных тестов… Функция недоступна или отключена » я обнаружил, что во время каждого сеанса Visual Studio вам нужно вручную создать один класс тестирования, прежде чем будет доступен мастер.

Если у вас есть существующий проект Unit Test в решении,

В обозревателе решений щелкните правой кнопкой мыши проект модульного теста -> Добавить -> Модульный тест… Это создаст новый класс модульного теста и запустит Visual Studio, когда существующий класс Модульный тест доступен, таким образом, включится мастер создания модульных тестов. Примечание. Вы можете удалить созданный файл класса Unit Test (UnitTestX.cs), так как он используется для запуска функции.

Если у вас нет проекта Unit Test в решении, его необходимо создать перед добавлением ручного класса:

Перейдите в Файл -> Добавить -> Новый проект ... В окне Добавить новый проект выберите Установлено -> Visual C # -> Тест -> Проект модульного тестирования. Дайте ему осмысленное имя и нажмите ОК

В посте Закона Давы « Создание модульных тестов…» функция недоступна или отключена содержит снимки для иллюстрации каждого шага.

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

,

Майкл Фрейдгейм
источник
«Вам нужно создать один тестовый класс вручную, прежде чем станет доступен мастер», - в конце концов мне это удалось
Jorj
Спасибо, я использовал блог
Дау
6

Меню «Создать юнит-тесты» было удалено в бета-версии. Я не уверен, есть ли планы вернуть его или нет. Если это действительно проблема для вас, запросите ее на сайте Visual Studio UserVoice: http://visualstudio.uservoice.com/

Скотт Дорман
источник
4

Вы можете восстановить правой кнопкой мыши «Создать модульные тесты ...», импортировав следующие vssettings отсюда .

Дава Лоу
источник
3

http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Способ 3 - Снова включите контекстное меню Создать модульные тесты ...

Это, безусловно, лучший метод когда-либо. Чтобы снова включить меню «Создать юнит-тесты ...», перейдите в «Инструменты» -> «Настройка» ..., чтобы открыть диалоговое окно «Настройка». В диалоговом окне «Настройка» перейдите на вкладку «Команды», установите переключатель «Контекстное меню» и выберите «Редактор контекстных меню | Окно кода.

Питер Минг
источник
...и что потом? Он уже указан там, но не отображается, когда я щелкаю правой кнопкой мыши.
Люк Пуплетт
0

«Вы можете обнаружить, что использование любого из вышеперечисленных методов может не сработать. Т.е. командное окно сообщит вам, что команда недоступна, сочетание клавиш не будет запущено или контекстное меню будет доступно, но отключено.

Чтобы все это работало, сначала вам нужно будет иметь проект модульного тестирования в своем решении. После создания проекта модульного теста вам нужно будет вручную добавить элемент модульного теста в проект, даже если проект разворачивается с одним из них. После того, как вы это сделаете, все будет работать так же, как в Visual Studio 2010. Вы можете безопасно удалить эти файлы UnitTest1.cs. "

(Майкл Фрейдгейм)

Varini
источник