Поделиться через


Часто задаваемые вопросы о обозревателе тестов 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.