Visual Studio "Отладка Unit Test" не попадает в контрольные точки
При использовании Visual Studio 2008 и отладки моих модульных тестов... иногда отладчик работает нормально. Однако очень часто после изменения какого-либо кода, затем нажав "Отладка Unit Test", Visual Studio не ударит по точкам останова в коде. Отладчик в основном зависает, и в конечном итоге тесты запускаются с новым кодом в любом случае, но никогда не перестают позволять мне видеть, что происходит.
Я предполагаю, что это имеет какое-то отношение к кешированию некоторых типов, выполняемому отладчиком, но не важно, что я делаю (очистить проект, удалить папки bin, перезапустить VS и т.д.). Я никогда не смогу получить правильную сборку нагрузки. Кто-нибудь еще видел это поведение? Любые решения?
Кстати, используя Resharper 4.5 и .NET 3.5 на Win XP.
Ответы
Ответ 1
У меня просто была проблема с ударами точек останова в VS2015.
Я всегда использую конфигурацию решения Debug, но по какой-то причине мое решение было настроено на создание версии Release.
Переключение с Release на Debug в раскрывающемся списке в верхней части Visual Studio устранило мою проблему.
Ответ 2
Другой способ: принудительно запустить отладчик из unit test:
System.Diagnostics.Debugger.Launch();
Ответ 3
Теперь у нас есть эта проблема с Visual Studio 2017 15.5 и Resharper 2017.2.
Проблема, вызванная Resharper и решена в последних версиях 2017.3 +
ссылка
Ответ 4
У меня была та же проблема, хотя у меня нет постоянного решения, это быстрое одно время:
Отлаживайте unit test (Ctrl-T, Ctrl-D), затем перейдите в "Immediate Window", введите что-нибудь (например, "a" или "null" ) и нажмите enter. После этого точка останова будет удалена.
Ответ 5
Точка останова не попадает при запуске отладки из окна "Unit Test Sessions" (Resharper - Windows - Unit Test Sessions), который поступает из ReSharper.
Но когда запуск теста из окна "Проводник тестеров" (Test - Windows - Test Explorer) VS, он попадает в точку останова.
VS Enterprise 2017 V15.5.6, ReSharper 2017.2.2
Последний ReSharper 2017.3.1 не является вариантом, поскольку он содержит другие ошибки
Ответ 6
Одна проблема, с которой я столкнулся при попытке отладки тестового метода, заключалась в том, что он был закрытым. Простое изменение метода с private
на public
исправило мою проблему.
Я не знаю, почему это проблема, но, вероятно, это как-то связано с реализацией атрибута [Test]
NUnit.
Ответ 7
Если у вас есть [HostType("ASP.NET")]
, удалите его и Test → Debug → Запустите тесты снова
Ответ 8
То, что оказалось решением для меня: убедитесь, что все версии вашего пакета nuget совпадают. В моем Newtonsoft.Json
тестовом проекте использовалась версия Newtonsoft.Json
которая была новее, чем ссылка на Newtonsoft.Json
по проекту, который я тестировал. Как только я обновил все пакеты nuget до последней версии, я смог достичь точки останова
Ответ 9
Убедитесь, что вы отлаживаете правильный тест!
У меня есть несколько тестов с очень похожими именами, за исключением последнего слова в названии теста.
В первом тесте была установлена точка останова, а во втором тесте окно "Студия тестов" Visual Studio использовалось для "Отладка выбранных тестов", для которого не была установлена точка останова.
Тестовые имена
PublishAsync_Valid_Acked
PublishAsync_Valid_Nacked