CodeLens находит только тесты, написанные на MSTests
Я недавно установил Visual Studio 2013 и CodeLens просто потрясающий! Проблема, которую я обнаружил, заключается в том, что всякий раз, когда я открываю файл класса, в котором есть методы, он не находит модульные тесты, связанные с методом, если он не записан в MSTest. Есть ли что-то, что я должен сделать, чтобы он мог найти другие модульные тесты, такие как MSpec?
Это потому, что спецификации машин имеют другой подход при создании модульных тестов против MSTest или другой инфраструктуры тестирования?
2 ответа
Индикаторы состояния "проверено" и "тестирование" питаются от проводника тестов.
Поэтому, если ваши тесты MSpec отображаются в проводнике тестов и написаны на C# или VB, они также должны отображаться в CodeLens.
(тот же ответ, что и в Visual Studio 2013 с функцией "Объектив кода" с NUnit)
Я просто сделал это с помощью NUnit на чистой машине, установив Nunit и расширение Nunit в диспетчере расширений. Вот Main
показывает одну ссылку и один проходной тест, а сам тест показывает галочку после успешного выполнения.
Я сделал то же, что показал Джон Гарднер в своем ответе, за исключением того, что я разделил его на 2 проекта (чтобы имитировать настройку, с которой я работал, в моем реальном решении). Сначала это не сработало, хотя я мог видеть тесты в Test Explorer. После недолгих поисков я наткнулся на правильный ответ для моей ситуации.
Оказывается, вам нужно:
(1) Создайте новый проект модульного тестирования (не библиотека классов)
(2) Добавьте ссылку NUnit в проект модульного тестирования (я использовал NuGet) и установите адаптер тестирования NUnit в VS2013
(3) Переместите свои тесты в этот новый проект
(4) После того, как вы сохранили и собрали, теперь вы можете вернуться к своему производственному коду и увидеть сообщение "x/y переходящий" и увидеть модульные тесты в окне Test Explorer.
Большинство из нас, которые долгое время использовали NUnit, используют для создания библиотек классов для нашего кода вместо проектов модульного тестирования. Было бы неплохо, если бы документация CodeLens фактически затрагивала это непосредственно (в документации говорится "Индикаторы статуса тестирования автоматически появляются в тестовых проектах", что было моей подсказкой).