Часто задаваемые вопросы о обозревателе тестов Visual Studio
Обнаружение динамических тестов
Обозреватель тестов не обнаруживает мои тесты, которые динамически определены (например, теории, пользовательские адаптеры, кастомные черты и инструкции #ifdef). Как сделать так, чтобы эти тесты были обнаружены?
Создайте проект для выполнения обнаружения на уровне сборки.
обнаружение тестов в режиме реального времени — это обнаружение тестов на основе исходного кода. Он не может обнаружить тесты, использующие теории, пользовательские адаптеры, пользовательские атрибуты, #ifdef
инструкции и прочее, так как они определены во время выполнения. Для точного обнаружения этих тестов требуется выполнение сборки.
В Visual Studio 2017 версии 15.6 и более поздних версиях обнаружение на основе сборок (традиционное средство обнаружения) выполняется только после сборки. Этот параметр означает, что обнаружение тестов в режиме реального времени находит столько тестов, сколько это возможно при редактировании. Механизм обнаружения на основе сборок позволяет тестам, определяемым динамически, появляться после сборки.
Обнаружение тестов в режиме реального времени улучшает скорость реакции, но всё же позволяет получить полные и точные результаты после сборки.
Символ обозревателя тестов плюс (+)
Что означает символ плюса, отображаемый в верхней строке обозревателя тестов?
Символ плюса (+) указывает на то, что после сборки и выполнения обнаружения на основе сборок можно будет найти больше тестов. Этот символ отображается, если динамически определенные тесты обнаруживаются в проекте.
Обнаружение тестов в режиме реального времени
Теперь тесты отображаются в Test Explorer, пока я набираю текст, не требуя сборки проекта. Что изменилось?
Эта функция называется обнаружение тестов в режиме реального времени. Он использует анализатор Roslyn для поиска тестов и заполнения обозревателя тестов в режиме реального времени, не требуя создания проекта. Дополнительные сведения о поведении обнаружения тестов для динамически определенных тестов, таких как теории или пользовательские признаки, см. в разделе Динамическое обнаружение тестов выше в этой статье.
Совместимость для обнаружения тестов в режиме реального времени
Какие языки и платформы тестирования могут использовать обнаружение тестов в режиме реального времени?
обнаружение тестов в режиме реального времени работает только для управляемых языков (C# и Visual Basic), так как оно создается с помощью компилятора Roslyn. Сейчас обнаружение тестов в режиме реального времени работает только для платформ xUnit, NUnit и MSTest.
Журналы тестового эксплорера
Как включить журналы для обозревателя тестов?
Перейдите к разделу Tools>Options>Test и найдите там раздел ведения журнала.
Обнаружение тестов UWP
Почему мои тесты в проектах UWP не обнаружены, пока я не разверну приложение?
Тесты универсальной платформы Windows (UWP) предназначены для другой среды выполнения при развертывании приложения. Чтобы точно найти тесты для проектов UWP, необходимо не только создать проект, но и развернуть его.
Сортировка обозревателя тестов
Как выполняется сортировка результатов теста в представлении иерархии?
Представление иерархии сортирует тесты по алфавиту, а не по результатам. Предыдущие настройки группировки сортировали результаты теста сначала по итогу, а затем в алфавитном порядке. Вы по-прежнему можете включить сортировку по результатам, щелкнув правой кнопкой мыши заголовок столбца в Test Explorer, включив столбец состояния, а затем выбрав заголовок столбца состояния, чтобы применить сортировку по этому столбцу. Вы можете предоставить отзывы о дизайне в задаче GitHub .
Представление иерархии обозревателя тестов
В иерархическом представлении рядом с группами родительских узлов отображаются значки для статусов: пройдено, неудачно, пропущено и не выполнено. Что означает эти значки?
Значки рядом с Project, пространство имен, и группировки классов показывают состояние тестов в каждой группировке. См. следующую таблицу.
Поиск по пути к файлу
Почему в поле поиска обозревателя тестов больше нет фильтра пути к файлу?
Фильтр пути к файлу в поле поиска обозревателя тестов был удален в Visual Studio 2017 версии 15.7. Следующая функция использовалась редко, и обозреватель тестов может быстрее получать методы тестирования, исключив её. Если это изменение прерывает ваш процесс разработки, сообщите нам, отправив отзыв в сообщество разработчиков.
Удаление незадокументированных интерфейсов
Некоторые тестовые API больше не присутствуют в Visual Studio 2019. Что изменилось?
В Visual Studio 2019 некоторые тестовые API окна, которые ранее помечены как общедоступные, но никогда официально не документировались, будут удалены. Они были помечены как устаревшие в Visual Studio 2017, чтобы заранее предупредить разработчиков расширений. По нашим данным, очень мало расширений нашли эти API и стали зависимыми от них. К ним относятся IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
и SearchFilterTokenType
.
Если это изменение влияет на ваше расширение, дайте нам знать, подав заявку об ошибке в сообществе разработчиков .
Ссылка на адаптер тестирования NuGet
Почему мои тесты не выполняются в Visual Studio 2017 версии 15.8, даже если они обнаружены?
Все тестовые проекты должны содержать ссылку NuGet на адаптер тестов .NET в их файл .csproj. Если они нет, в проекте отображаются следующие выходные данные теста, если обнаружение по расширению адаптера тестирования начинается после сборки или если вы пытаетесь выполнить выбранные тесты:
Тестовый проект {} не ссылается на адаптер NuGet .NET. Проверка поиска или выполнения тестов может не работать в этом проекте. Рекомендуется ссылаться на адаптеры тестов NuGet в каждом тестовом проекте .NET в решении.
Вместо использования расширений адаптера тестирования проекты должны использовать пакеты NuGet адаптера тестирования. Это требование значительно повышает производительность и приводит к снижению проблем с непрерывной интеграцией. Дополнительные сведения об отмене расширений тестового адаптера .NET см. в заметках о выпуске .
Контейнер UWP TestContainer не найден
Почему мои тесты UWP больше не выполняются в Visual Studio 2017 версии 15.7 и более поздних версий?
Последние тестовые проекты UWP указывают свойство сборки, которое позволяет повысить производительность для идентификации тестовых приложений. Если у вас есть тестовый проект UWP, который был инициализирован до версии 15.7 Visual Studio, эта ошибка может появиться в выходных данных >тестов:
System.AggregateException: произошла одна или несколько ошибок. ---> System.InvalidOperationException: Следующий TestContainer не найден {} в Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()
Чтобы устранить эту ошибку, выполните указанные ниже действия.
Обновите свойство сборки для тестовых проектов с помощью следующего кода:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
Обновите версию пакета SDK TestPlatform с помощью следующего кода:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
Предварительные версии функций
Как использовать предварительные версии функций в Visual Studio 2019?
В Visual Studio 2019 вы можете выбрать предварительные версии функций в Tools>Options>Environment>Preview Features.
Связанное содержимое
- Microsoft.VisualStudio.TestTools.UnitTesting
- создание и запуск модульных тестов для существующего кода
- проведите модульное тестирование вашего кода
- часто задаваемые вопросы о динамическом модульном тестировании