CodeLens находит только те тесты, которые написаны в MSTests.

Недавно я установил Visual Studio 2013, и CodeLens просто великолепен! Проблема, которую я обнаружил, заключается в том, что всякий раз, когда я открываю файл класса, в котором есть методы, он, похоже, не находит модульные тесты, связанные с методом, если он не написан в MSTest. Есть ли что-нибудь, что мне нужно сделать, чтобы он мог найти другие модульные тесты, такие как MSpec?

введите здесь описание изображения

Это потому, что Machine Specifications имеет другой подход при создании модульных тестов по сравнению с MSTest или другой средой тестирования?


person 123 456 789 0    schedule 23.10.2013    source источник
comment
Тестовые индикаторы и индикаторы состояния теста требуют, чтобы методы были обнаружены (чтобы появился индикатор ссылок) и соответствовали проводнику тестов. интегрируется ли MSpec с обозревателем тестов?   -  person John Gardner    schedule 02.11.2013
comment
Я так не думаю, если только я не использую тестовый адаптер MSpec, чтобы он был интегрирован с проводником тестов.   -  person 123 456 789 0    schedule 04.11.2013


Ответы (2)


Индикаторы «Проверено» и «Состояние теста» питаются от обозревателя тестов.

Поэтому, если ваши тесты MSpec отображаются в обозревателе тестов и написаны на C# или VB, они также должны отображаться в CodeLens.

(тот же ответ, что и функция Visual Studio 2013 Код Lens с NUnit)

Я только что сделал это с NUnit на чистой машине, установив Nunit и расширение Nunit в диспетчере расширений. Здесь Main показывает одну ссылку и один пройденный тест, а сам тест показывает галочку после успешного выполнения.

введите здесь описание изображения

person John Gardner    schedule 05.11.2013
comment
Хотя это не так. При установке тестовых адаптеров для других сред тестирования другие среды тестирования будут отображаться в обозревателе тестов, но CodeLens не будет отображать ссылки. - person 123 456 789 0; 06.11.2013
comment
добавил фото и обновил детали. у вас есть конкретный случай, когда он не работает? Я никогда не видел mspec, если исходный код не C # или VB, то он не будет работать, так как codelens в настоящее время работает только с исходным кодом vb и c #. - person John Gardner; 06.11.2013

Я сделал то же самое, что Джон Гарднер показал в своем ответе, за исключением того, что я разделил его на 2 проекта (чтобы имитировать настройку, с которой я работал в своем реальном решении). Сначала это не сработало, хотя я мог видеть тесты в Test Explorer. Немного поискав, я наткнулся на правильный ответ для моей ситуации.

Оказывается, нужно:

(1) Создайте новый проект модульного тестирования (не библиотеку классов)

(2) Добавьте ссылку NUnit в проект Unit Test (я использовал NuGet) и установите тестовый адаптер NUnit в VS2013.

(3) Переместите свои тесты в этот новый проект

(4) После сохранения и сборки теперь вы можете вернуться к своему производственному коду и увидеть сообщение «x/y passing» и увидеть модульные тесты в окне Test Explorer.

Большинство из нас, которые долгое время использовали NUnit, привыкли создавать библиотеки классов для нашего кода вместо проектов модульного тестирования. Было бы неплохо, если бы документация CodeLens действительно прямо освещала это (в документации говорится: «Индикаторы состояния теста автоматически появляются в тестовых проектах», что было моей подсказкой).

person Jim    schedule 29.12.2014