it-swarm.com.ru

Visual Studio - вдруг не удается отладить тесты

Я не уверен, что я сделал, но внезапно мой Visual Studio 2012 не будет отлаживать какие-либо тесты.

Если я выберу тест из Test Explorer и скажу, чтобы он выполнялся, он просто выведет его в окне Test Output:

> ------ Discover test started ------
> ========== Discover test finished: 29 found (0:00:01.3371755) ==========
> ------ Run test started ------ Process with an Id of -1 is not running.
> ========== Run test finished: 0 run (0:00:01.4711861) ==========

что, черт возьми, это значит ?! После этого несколько раз ошибка изменялась на:

The Operation was Cancelled

что я точно не сделал.

Это делается на каждом тесте в списке.

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

Что я мог сделать? Я не стал активно заходить в какие-либо настройки и ничего менять, возможно, где-то случайно щелкнуть, но где?

37
SelAromDotNet

Я столкнулся с этим сегодня. Я пытался закрыть решение, но оно не сработало. Моя ошибка: я установил решение в Release Mode вместо Debug Mode. Я установил его на Debug, после чего он заработал как положено.

Я использую VS 2015 Professional.

35
Tom Mabaquiao

Я получал тот же вывод после обновления тестового проекта с VS 2010 до VS 2012 Ultimate Update 3. Сообщение отображалось в окне «Вывод теста» после использования команды MSTest для Debug Selected Tests

Я пытался отлаживать тесты, используя окно Resharper 8 Unit Test Session. Сообщение в окне результатов было «Тест не был выполнен».

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

Если ссылка не работает:

  1. Перейти к проекту правой кнопкой мыши и выбрать свойства.
  2. Выберите вкладку «Отладка» слева.
  3. Перейдите к «Включить отладчики» внизу
  4. Установите флажок «Включить отладку собственного кода» (или «Включить отладку неуправляемого кода», зависит от версии)

Спасибо GalDude33 за публикацию решения.

19
Branko

Иметь регулярно ту же проблему с Visual Studio 2012 .

Решение: закрыть текущее решение и открыть его .

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

13
Pragmateek

Пожалуйста, следуйте инструкциям ниже. У меня сработало

Шаги.

1.Закройте свои визуальные студийные экземпляры

2. Очистите временные файлы и файлы предварительной выборки.

3. Удалить файлы в папке проекта bin.

4. Перезапустите приложения.

4
swathi cv

Убедитесь, что ваш тестовый проект является частью проектов для сборки.

  • Щелкните правой кнопкой мыши свое решение из Solution Explorer
  • Перейти к Установить проекты запуска.
  • Нажмите на Свойства конфигурации и убедитесь, что ваш тестовый проект проверен на сборку
2
Peter.Ombwa

У меня была похожая проблема в VS2015 . В моем случае не удалось отладить только один юнит-тест. Отладчик будет инициализировать тест, но не будет отлаживать сам тест. Проблема заключалась в том, что Resharper импортировал библиотеку Newtonsoft.Json без включения пакета NuGet для проекта. (Я использовал Alt + Enter для автоматического импорта библиотеки)

Решение было установить пакет Newtonsoft.Json NuGet для тестового проекта.

2
user2957464

Асинхронные тесты - Симптомы в моем сценарии были похожи в том, что мой тест не выполнялся, а моя точка останова не была достигнута. Тестовый проводник в Visual Studio мог видеть тест, но я не мог отладить его. При запуске он действовал так, как будто его нельзя было найти, хотя его можно было увидеть в Test Explorer.

В случае, если это поможет кому-то еще, моя проблема была такой же простой, как необходимость изменить сигнатуру метода тестирования с «async void » на «async Task ».

Сделай это:

[TestMethod]
public async Task CorrectlyFailingTest()
{
  await SystemUnderTest.FailAsync();
}

Не это:

[TestMethod]
public async void CorrectlyFailingTest()
{
  await SystemUnderTest.FailAsync();
}
1
Paul Schroeder

Когда я использую Visual Studio 2012, по некоторым причинам, если я использую комбинацию клавиш Ctrl R + T, она достигнет точки останова. Но если я нажму «Запустить все» или «Запустить выбранный тест» в Test Explorer, это не произойдет. Visual Studio 2013 отлично работает в обоих направлениях.

1
paibamboo

Для меня обновление пакета Nuget из MSTest.TestAdapter и MSTest.TestFramework до последней версии решает проблему.

1
Youngjae

Взгляните на следующую ссылку, там есть обновление, исправляющее это . Visual Studio 2012 обновление 3.

http://social.msdn.Microsoft.com/Forums/vstudio/en-US/e96f53c7-dc8c-4274-8756-eb745de701e8/visual-studio-2012-update-3-cant-debug-unit-test

1
user2682517

В моем случае, точка останова не может быть достигнута, если есть предупреждение о сборке. Я могу проверить это, переключив строку кода с предупреждением. Это была неиспользуемая строка длиной 66000 . (Предупреждение CS0219 Переменная 'XXXXXXX' назначена, но ее значение никогда не используется)

Я полагаю, компилятор удалил эту строку, поэтому отображение символов не удалось?

0
Yiping

В моем случае мои символы не были загружены.

Мне пришлось перейти в Сервис -> Параметры -> Отладка -> и выбрать «Загрузить все модули, кроме исключенных», чтобы точки прерывания были поражены.

 enter image description here

0
pushkin

Решение: Выберите «Debug Unit Tests» или «Run Unit Tests» вместо «Debug Unit Tests» или «Run Tests».

0
Ravi Kant Shivhare

Нажатие «Выполнить тесты» не вызовет точки останова. 

Чтобы отладить ваш код и остановиться на точке останова в тесте:

Щелкните правой кнопкой мыши> Отладочные тесты

или же

Вкладка «Тест»> Отладка> Все тесты

0
Chris Mathew

Убедитесь, что тестовый проект и основной проект используют одну и ту же версию фреймворка.

 enter image description here

0
Marco Staffoli

Для меня проблема была в том, что после обновления до 2017 года v15.5.7 свойства моего решения изменились как-то. Это позволило мне выполнить тест один раз в режиме отладки, но не снова, если только я не перезапустил VS, тогда он снова заработал бы один раз. Как только я вернул его обратно, оно снова заработало. Параметр был и должен быть для меня Решение> Общие свойства> Проект запуска> Несколько проектов запуска. Каким-то образом он был установлен на «Единый проект запуска».

0
Shawn Smith

Начиная с Visual Studio 2017 (15.8), это может происходить, когда активна функция живого модульного тестирования. Там нет четкого сообщения в выводе; это только начинается и останавливается без отладки. Решение останавливает живое тестирование, чтобы вы могли нормально отлаживать тест.

0
Arturo Torres Sánchez

Для меня сработало следующее:

  1. Закрыть решение
  2. Закрыть Visual Studio 
  3. Удалите содержимое "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files \" 
  4. Удалите содержимое "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files \"
  5. Откройте Visual Studio
  6. Открытое решение
0
wh1tet1p

Для меня проблема заключалась в том, что в моем конфигурационном файле ( app.config ) не было файла преобразования отладки ( app.Debug.config ), после того, как я его добавил, снова начните работать/отлаживать.

0
Jaider

ссылки на проблемы app.config могут невольно привести к тому, что отладчик не присоединится, и точки останова не будут достигнуты при отладке тестовых проектов. Этот файл может быть обновлен пакетами или устарел.

Решение: я обычно копирую, а затем удаляю все зависимости под тегом времени выполнения из app.config тестового проекта. Отладка обычно начинает работать после этого, но некоторые ссылки, возможно, придется добавить обратно, если сборки не могут быть найдены.

0
mhapps

Это может не быть решением вашей проблемы, но я также не смог отладить тест, который я написал. Оказывается, решение было довольно простым:

Измените метод с private на public. Я не знаю, почему отладка невозможна в частных методах, но, вероятно, это связано с реализацией атрибута [Test]. Надеюсь, что это поможет любому, кто борется с подобной проблемой в будущем!

0
Andreas Forslöw

Мне не удалось подключиться к моему отладчику, потому что он искал файл настроек теста.
Если это ваша проблема, перейдите в Test-> Test Settings-> Uncheck Local.testsettings option

 Unit Test Debugging Fix

0
Matthew Peterson