Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

  • Перейдите в проект правой кнопкой мыши и выберите свойства.
  • Выберите вкладку "Отладка" слева.
  • Перейдите к разделу "Включить отладчики внизу"
  • Установите флажок "Включить отладку исходного кода (или" Включить неуправляемый отладку кода ", зависит от версии).

Благодаря GalDude33 для публикации решения.

Ответ 3

Регулярно повторяйте ту же проблему с Visual Studio 2012.

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

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

Ответ 4

Пожалуйста, выполните следующие шаги. Это сработало для меня

Steps.

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

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

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

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

Ответ 5

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

  • Щелкните правой кнопкой мыши свое решение в обозревателе решений.
  • Перейдите в Set Startup Projects.
  • Нажмите на Свойства конфигурации и убедитесь, что ваш тестовый проект проверен на сборку.

Ответ 7

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

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

Ответ 8

Когда я использую Visual Studio 2012, по некоторым причинам, если я использую shortcut ctrl R + T, он попадет в точку останова. Но если я нажму "Запустить все" или "Запустить выбранный тест" в Проводнике тегов, он не будет. Visual Studio 2013 отлично работает в обоих направлениях.

Ответ 9

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

Ответ 10

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

Ответ 11

Удар "Run tests" не приведет к срабатыванию brakepoints.

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

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

или

Вкладка "Тест" > Отладкa > Все тесты

Ответ 12

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

Ответ 13

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

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

Сделай это:

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

Не это:

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

Ответ 14

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

enter image description here

Ответ 15

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

Ответ 16

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

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

Ответ 17

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

Ответ 18

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

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

Ответ 19

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

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

Ответ 20

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

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

Ответ 21

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

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

enter image description here

Ответ 22

Пила этот пост, исследуя ту же проблему; Это разрешило это для меня (отправляя это, если другие сталкиваются с тем же):

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

Действия:

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

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

Ответ 23

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

Unit Test Debugging Fix