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


Настройка архитектуры процесса для модульного теста

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

В этой статье содержатся сведения о настройке архитектуры процесса для модульных тестов и выполнении модульных тестов в качестве 64-разрядного процесса.

Настройка архитектуры процессов для проектов MSTest

Для проектов MSTest, использующих платформу тестирования Visual Studio (VSTest) в качестве средства выполнения теста, целевая платформа по умолчанию (архитектура процесса) соответствует архитектуре операционной системы. Это поведение можно переопределить для проектов, установленных на любой процессор в качестве целевой платформы, с помощью параметров Тестового обозревателя, как показано на следующем рисунке, или с помощью меню Тестирования.

снимок экрана: меню для выбора архитектуры процессора для AnyCPU.

В меню теста выберите Архитектура процессора для проектов AnyCPU.

Для проектов, использующих MSTest в качестве тестового runner вместо VSTest, архитектура определяется строго правилами MSBuild и среды выполнения. Исполняемые файлы создаются в соответствии с предпочтительной архитектурой, указанной в параметрах MSBuild и среды выполнения. Этот параметр можно настроить с помощью свойств MSBuild (например, PreferNativeArm64), но параметр Архитектура процессора для проектов AnyCPU нельзя использовать для изменения архитектуры этих проектов.

Заметка

Вы можете задать тестовый раннер при создании проекта модульного теста с использованием шаблона проекта MSTest или с помощью свойств MSBuild. Дополнительные сведения о различиях между тестировщиками MSTest и VSTest см. в сравнении Microsoft.Testing.Platform и VSTest .

PreferNativeArm64 (MSTest)

При использовании свойства MSBuild PreferNativeArm64 проект предпочитает работать изначально на архитектуре ARM64, если он доступен. Это свойство применимо к проектам, которые создают исполняемые файлы и следуют правилам среды выполнения MSBuild. Этот параметр игнорируется для платформы тестирования Visual Studio (VSTest) и применяется только к проектам MSTest, в которых в качестве средства выполнения тестов настроен MSTest.

Запуск модульного теста в виде 64-разрядного процесса

Если у вас есть 64-разрядный компьютер, вы можете выполнять модульные тесты и записывать сведения о охвате кода в виде 64-разрядного процесса.

Чтобы запустить модульный тест в виде 64-разрядного процесса, выполните следующую команду:

  1. Если код или тесты были скомпилированы как 32-разрядные или x86, но теперь вы хотите запустить их как 64-разрядный процесс, перекомпилируйте их как Любой ЦП.

    Совет

    Для максимальной гибкости скомпилируйте тестовые проекты с конфигурацией «Любой процессор». Затем можно запускать как на 32-разрядных, так и на 64-разрядных агентах. Нет смысла в компиляции тестовых проектов с 64-разрядной конфигурацией, если вы не вызываете код, который поддерживается только на 64-разрядной системе.

  2. Задайте модульные тесты для запуска в качестве 64-разрядного процесса.

    В меню Visual Studio выберите Тест, а затем выберите Архитектура процессора для проектов AnyCPU. Выберите x64, чтобы запустить тесты в виде 64-разрядного процесса.

    -или-

    Укажите <TargetPlatform>x64</TargetPlatform> в файле .runsettings. Преимуществом этого метода является то, что можно указать группы параметров в разных файлах и быстро переключаться между разными параметрами. Можно также скопировать параметры между решениями. Дополнительные сведения см. в статье Настройка модульных тестов с помощью файла .runsettings.

    Заметка

    Архитектура процессора для проектов AnyCPU,, не поддерживается в проекте MSTest, если вы задаете MSTest в качестве тестового средства выполнения вместо VSTest.