Visual Studio - внезапно не может отлаживать тесты

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

Если я выберу тест в Обозревателе тестов и скажу ему запуститься, он просто выведет это в окне вывода теста:

> ------ 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

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

Он делает это для каждого теста в списке.

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

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


comment
запуск от имени администратора не сработал, перезагрузка не сработала... но каким-то образом перезагрузка и запуск от имени администратора сработали... Больше я ничего не менял! вздох ... хорошо, это работает, если он будет продолжать в том же духе, опубликую это как ответ: /   -  person SelAromDotNet    schedule 02.08.2013


Ответы (31)


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

Я использую VS 2015 профессиональный.

person Tom Mabaquiao    schedule 24.10.2017
comment
Если бы я мог, я бы обнял тебя прямо сейчас. Это раздражало меня часами, лол. - person Jason Evans; 15.10.2018

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

Я пытался отлаживать тесты с помощью окна Resharper 8 Сеанс модульного тестирования. Сообщение в окне результатов было "Тест не был запущен".

Решение, которое помогло мне, состояло в том, чтобы изменить настройки тестового проекта, чтобы включить отладку собственного кода, как указано по этой ссылке: call-through-reflection/18729109#18729109">Неперехваченное исключение, вызванное методом, вызванным через отражение

В случае, если ссылка не работает:

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

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

person Branko    schedule 03.10.2013
comment
применил указанные вами настройки, но пока не работает - person Anil Purswani; 15.09.2014
comment
В качестве альтернативы убедитесь, что VS не установлен в режим Release. Я только что сделал эту ошибку. Вы должны быть на отладке, чтобы отлаживать тесты. - person dyslexicanaboko; 04.04.2017

Регулярно возникает одна и та же проблема с Visual Studio 2012.

Решение: закройте текущее решение и снова откройте его.

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

person Pragmateek    schedule 09.07.2014
comment
даже айтишники могут это исправить! Это сработало для меня - person Blue Clouds; 12.12.2016
comment
Работаю на меня в VS 2017. Что усугубляет проблему, так это прекращение отладки; Я должен позволить сеансу отладки завершиться, иначе он сломает команду "Отладка тестов". - person System.Cats.Lol; 24.08.2018

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

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

Сделай это:

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

Не это:

[TestMethod]
public async void CorrectlyFailingTest()
{
  await SystemUnderTest.FailAsync();
}
person Paul Schroeder    schedule 26.05.2018
comment
Это был мой случай на VS2019, и он работал отлично. - person Rabel Obispo; 06.06.2019

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

Шаги.

1. Закройте экземпляры Visual Studio.

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

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

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

person swathi cv    schedule 30.08.2017
comment
закройте всю мою визуальную студию, очистите временную папку и удалите папку bin и obj, которая работает для меня, спасибо - person Ali Yousefi; 20.11.2017
comment
Я не был уверен в шаге 2, поэтому пропустил его и перешел к шагу 3, затем к 4, и проблема была решена. спасибо @Ом Сао ... - person Tien; 26.01.2021
comment
и @swathi резюме !! - person Tien; 26.01.2021

Мне не удалось подключиться к моему отладчику, потому что он искал файл настроек теста.
Если это ваша проблема, перейдите в раздел Тест->Настройки теста->Снять флажок с параметра Local.testsettings.

Исправление отладки модульного теста

person Matthew Peterson    schedule 01.11.2018
comment
Какова причина отрицательного голосования? Если вы ссылаетесь на несуществующие параметры теста, это вызовет проблемы с отладкой модульных тестов. Дополнительная информация здесь: msdn.microsoft.com/en -нас/библиотека/ - person Matthew Peterson; 02.11.2018
comment
Кажется, существует множество проблем и связанных с ними решений для этого симптома, но это помогло мне. Отключение файла runsettings в VS2017 работает. Спасибо! - person Eike; 02.03.2020

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

  • Щелкните правой кнопкой мыши свое решение в Обозревателе решений.
  • Перейдите в раздел Установить проекты запуска...
  • Нажмите Свойства конфигурации и убедитесь, что ваш тестовый проект проверен на сборку.
person Peter Ombwa    schedule 29.05.2018
comment
Если вы используете инструмент развертывания — и не выполняете тесты для CI/CD — вам, возможно, придется снять отметку с проекта Unit Test — для вашего CI/CD, а когда вы добавите новые тесты — вам придется снова перепроверить его для вашего модульного тестирования — было бы неплохо иметь предупреждение о добавлении нового теста, но вам нужно вручную проверить, проверено ли оно в вашей сборке отладки. - person Mark W. Mitchell; 01.11.2018

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

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

person user2957464    schedule 21.04.2016

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

person Arturo Torres Sánchez    schedule 17.10.2018
comment
Мне даже приходится пересобирать проект после деактивации живого тестирования. После этого каждый тест показывает синий восклицательный знак, и отладка снова работает. - person Kai Hartmann; 10.09.2019

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

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

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

person pushkin    schedule 01.02.2019

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

person Youngjae    schedule 24.08.2017

Взгляните на следующую ссылку, есть обновление, которое исправляет это. 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

person user2682517    schedule 14.08.2013
comment
Что сбивает с толку, так это то, что в ссылке они называют это VS2013 Update 3. - person sgryzko; 05.10.2013

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

person paibamboo    schedule 18.08.2016
comment
Вы на самом деле использовали Ctrl+R, Ctrl+T (отладка, а не запуск)? для Run ожидается не останавливаться на точке останова. - person Michael Freidgeim; 02.06.2021

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

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

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

or

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

person Chris Mathew    schedule 12.01.2018

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

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

person Andreas Forslöw    schedule 08.11.2018

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

ИЗМЕНИТЬ

Целевая платформа для проекта модульного тестирования может быть изменена в настройках теста, а не в свойствах проекта. Подробнее см. в этом ответе.

person Ibrahim Amer    schedule 05.03.2019
comment
большое спасибо! Я меняю все свои проекты на любой процессор и работает! - person Hernaldo Gonzalez; 22.10.2019
comment
@HernaldoGonzalez рад это слышать!. Удачного взлома, мой друг :)) - person Ibrahim Amer; 24.10.2019

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

person Jaider    schedule 17.05.2016

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

person Shawn Smith    schedule 28.02.2018

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

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

person Marco Staffoli    schedule 28.06.2018

Решение. Выберите «Отладка модульных тестов» или «Выполнение модульных тестов» вместо «Отладка тестов» или «Выполнение тестов».

person Ravi Kant Shivhare    schedule 29.07.2018
comment
Выполнение не будет останавливаться на точках останова. - person Michael Freidgeim; 02.06.2021

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

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

person mhapps    schedule 08.10.2018

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

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

person Yiping    schedule 21.10.2018

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

  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. Откройте визуальную студию
  6. Открытое решение
person wh1tet1p    schedule 12.11.2018

Я только что столкнулся с похожей проблемой, когда NUnits TimeoutAttribute вызвал отмену теста. при отладке без осмысленного сообщения.

Удаление атрибута из теста устранило проблему.

person nozzleman    schedule 09.03.2020

Если вы создали проект в более старой версии Visual Studio, а теперь используете VS 2019, необходимо установить библиотеку Microsoft.VisualStudio.TestPlatform и обновить другие.

person H2Oc    schedule 14.05.2020

Как и вы, ребята, мне не удалось отладить или запустить модульные тесты моего проекта тестов MSBuild в Visual Studio 2019 16.6.2. Код, который я хотел для модульного тестирования, находится в библиотеке классов на основе .Net 4.6.2. Обозреватель тестов всегда указывал, что тесты не выполняются, с синим информационным значком под ним.

Поэтому я просто попытался создать новый модульный тест из файла кода метода, который я хотел протестировать =>, и это сработало! Точные шаги, которые я прошел: в файле С# перейдите к методу, щелкните его правой кнопкой мыши и выберите «Создать модульные тесты» и позвольте диалоговому окну создать новый проект. После добавления тестового кода из моих исходных файлов все прошло нормально, и я могу отлаживать и запускать свои методы тестирования!

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

person Cordt    schedule 24.06.2020

В моем случае это был файл launchSettings.json, из-за которого отладчик не мог попасть в точку останова. Не уверен, почему файл присутствовал в проекте типа модульного тестирования (вероятно, какой-то нежелательный остаток), однако xunit, похоже, не проигнорировал его. Я просто удалил файл и снова смог отладить модульные тесты.

Env: предварительная версия Microsoft Visual Studio Enterprise 2019 (версия 16.8.0, предварительная версия 3.1)

person rocky    schedule 24.09.2020

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

person Eric    schedule 10.12.2020

Для меня я пошел в Тестовое исследование -> Настройка -> Архитектура процессора для AnyCPUProjects и изменил его на X64, и это сработало для меня.

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

person Gaurav Joshi    schedule 29.12.2020

Я просто добавил xunit.runner.visualstudio (последняя стабильная версия на тот момент была 2.4.2), и это помогло.

person Harold_Finch    schedule 13.07.2021

Увидел этот пост, исследуя ту же проблему; Это решило это для меня (опубликовать это на случай, если другие столкнутся с тем же):

Система: Windows 7, 64-битная на Intel i5

Действия:

  • Скачал VS2012 Update Pack 4 от Microsoft
  • Установите для UAC (нажмите клавишу Windows, введите UAC) значение По умолчанию.
  • Удалить пакет обновлений 4
  • (Обязательно) перезагрузка
  • Снова установите для UAC значение Default (каким-то образом оно было сброшено до нуля)
  • Установите пакет обновлений 4

О UAC упоминалось где-то еще, но я не знаю, был ли это необходимым шагом.

person AutomatedChaos    schedule 31.03.2014