2016-09-08 2 views
3

Test Explorer позволяет запускать тесты под отладчиком, и я часто использую его для отладки одиночных тестов. Однако используемые в этом случае настройки отладчика отличаются от установленных для тестового проекта и предотвращения эффективной отладки. Я хотел бы ограничить отладку в управляемом режиме только для библиотеки классов UWP, в то время как отладчик всегда запускается в смешанном собственном/управляемом режиме. Это предотвращает любую отладку, поскольку .NET Core не поддерживает отладку смешанного режима. Я работаю на VS 2015.Как изменить настройки отладчика для отладки отдельных модульных тестов из VS 2015 Test Explorer

После проверки и тестирования всех возможных настроек мне не удалось переключить режим отладки с смешанного на управляемый. Есть идеи?

Не удалось: Очистка и восстановление проблемы с кешем MEF на короткое время.

Отладка завершается с ошибкой. Msg Не удается подключиться к CoreCLR. Interop отладка не поддерживается

ответ

4

выше проблема, скорее всего, ошибка, или отладчик/CoreCLR несоответствие во время выполнения Windows. С UWP runtime версия 5.1.0 отладка в управляемом, родном и смешанном режиме работает отлично. Обновляя версию среды UWP до 5.2.2, можно воспроизвести сообщенную проблему. С понижением до UWP runtime 5.1.0 проблема решена. Версия моего VS - обновление до 2015 года 3.1.

Все вышеуказанные проблемы были воспроизведены на чистом Windows 10 Pro и VS 2015 Update 3.1 install.

Смотрите комментарий 2 для обходного для UWP выполнения v5.2.2

+0

, если вы убедитесь, что это связано с версией среды UWP, я предлагаю вам использовать старую версию в качестве обходного пути, а затем сообщать об этой проблеме в группу отчетов Microsoft connect. Конечно, вы также можете поделиться простым образцом здесь, я проверю его в своей стороне, я позабочусь о том, чтобы сообщить об этом, если я получу ту же проблему, что и ваша. –

+1

Довольно уверен, что это проблема с UWP v5.2.2 runtime.One может воспроизвести ошибку, выбросив исключение в тесте, которое приведет к сбою приложения тестирования UWP, и после этого попытается отладить тест на нарушение доступа к памяти в финализаторе, вызванном вне метода тестирования. Если время выполнения обновлено с v1.0.3, которое по умолчанию используется для версии v1.0.4, выпущенного с .NET Core 1.0.1, проблемы фиксируются на постоянной основе даже в среде исполнения v5.2.2. Это обходной путь, который я бы рекомендовал на время. Мое понимание заключается в том, что ошибка была исправлена ​​в v1.0.4 среды выполнения .NET Core. Нам нужно дождаться следующего выпуска UWP, чтобы его «официально» зафиксировали. –

+0

Если это так, вы можете оставить отзыв здесь: http://connect.microsoft.com/VisualStudio/feedback/CreateFeedback.aspx, чтобы вы могли получать самую последнюю информацию из группы продуктов напрямую. Конечно, поскольку он хорошо работает в v1.0.4 основного времени выполнения .NET, по крайней мере, это обходной путь теперь, вы можете отметить свой ответ в качестве предварительного ответа, прежде чем вы получите какую-либо информацию из группы отчетов о подключении. Хороший день :) –

0

Interop отладка не поддерживается, что вы не можете одновременно отлаживать как управляемые, так и собственные типы кода. Для приложений CoreCLR используйте приложение для процесса и включите CoreClr, снова отлаживайте его.

enter image description here

+0

К сожалению, это не решение самой проблемы. Я ищу параметры отладки, которые можно использовать для настройки отладчика для сеансов, запущенных в Test Explorer. Очевидно, что я мог бы присоединяться к тестовому процессу, но ... –

+0

Какой развивающийся язык использовал ваш тестовый проект и предыдущий проект? Включите или отключите опции отладки «Использовать режим совместимой совместимости» и «Использовать режим основной совместимости» в разделе TOOLS-> Options-> Debugging? Для общего приложения C#, если вы хотите отладить собственный код, вы можете найти «Включить собственную отладку» в свойстве проекта. –

+0

Проблемы возникают с проектами C# (оба используются в тестовых и целевых проектах). Оба параметра «Использовать режим совместимой совместимости» и «Использовать режим основной совместимости» отключены (настройки по умолчанию), для параметров проекта (оба) установлены «Управляемая отладка». Однако я заметил, что после изменения конфигурации решения, то есть от от x86 до x64 отладка из Test Explorer возможна до тех пор, пока тесты не будут бросать некоторые необработанные исключения, кроме AssertException. Самые разрушительные из них поступают из управляемого - родного взаимодействия. Однако этот «стимулирующий» трюк является ненадежным. –

2

Чтобы расширить на ответ Яцека Blaszczynski, я должен был добавить Microsoft.NETCore.Runtime.CoreCLR версии 1.0.4 NuGet пакет, чтобы он работал с Microsoft.NETCore.UniversalWindowsPlatform версия 5.2.2. Интересно, что я не смог использовать текущую версию 1.1.0. Он даже не будет установлен.

В качестве альтернативы MS Test я предлагаю использовать xUnit. Он также работает с UWP, не требует добавления пакета Microsoft.NETCore.Runtime.CoreCLR nuget и работает намного быстрее. Here - это быстрый учебник.

+0

Подтвердите, что 1.1.0 не подходит для UWP v5.2.2 –

Смежные вопросы