Compartir vía


Configuración de la arquitectura de procesos para una prueba unitaria

En este artículo se proporciona información sobre la arquitectura de procesos que se usa para ejecutar pruebas unitarias, cómo establecer la arquitectura del proceso y cómo ejecutar pruebas unitarias como un proceso de 64 bits.

En este artículo se proporciona información sobre cómo establecer la arquitectura de procesos para pruebas unitarias y cómo ejecutar pruebas unitarias como un proceso de 64 bits.

Configuración de la arquitectura de procesos para proyectos de MSTest

En el caso de los proyectos de MSTest que usan Visual Studio Testing Platform (VSTest) como ejecutor de pruebas, la plataforma de destino predeterminada (arquitectura de proceso) coincide con la arquitectura del sistema operativo. Puede invalidar este comportamiento para los proyectos establecidos en Cualquier CPU como plataforma de destino mediante la Configuración del Explorador de pruebas, como se muestra en la ilustración siguiente, o mediante el Menú de Prueba.

Captura de pantalla que muestra el menú para seleccionar la arquitectura del procesador para AnyCPU.

En el menú Probar, seleccione Arquitectura de procesador para proyectos de AnyCPU.

En el caso de los proyectos que usan MSTest como ejecutor de pruebas en lugar de VSTest, la arquitectura se determina estrictamente mediante las reglas de MSBuild y runtime. Los ejecutables se generan en función de la arquitectura preferida especificada en la configuración de MSBuild/runtime. Puede ajustar esta preferencia mediante las propiedades de MSBuild (por ejemplo, PreferNativeArm64), pero la configuración Arquitectura de procesador para proyectos anyCPU no se puede usar para cambiar la arquitectura de estos proyectos.

Nota

Puede establecer el ejecutor de pruebas al crear un proyecto de prueba unitaria mediante la plantilla de proyecto MSTest o mediante las propiedades de MSBuild. Para obtener más información sobre la diferencia entre los ejecutores de pruebas de MSTest y VSTest, vea la comparación entre Microsoft.Testing.Platform y VSTest.

PreferNativeArm64 (MSTest)

Cuando se usa la propiedad PreferNativeArm64 MSBuild, el proyecto prefiere ejecutarse de forma nativa en la arquitectura ARM64 si está disponible. Esta propiedad es aplicable a los proyectos que generan ejecutables y siguen las reglas de tiempo de ejecución de MSBuild. Esta configuración se omite para los ejecutores de pruebas de Visual Studio Test Platform (VSTest) y solo se aplica a los proyectos de MSTest con MSTest configurados como ejecutor de pruebas.

Ejecución de una prueba unitaria como un proceso de 64 bits

Si tiene una máquina de 64 bits, puede ejecutar pruebas unitarias y capturar información de cobertura de código como un proceso de 64 bits.

Para ejecutar una prueba unitaria como un proceso de 64 bits:

  1. Si el código o las pruebas se compilaron como 32 bits/x86, pero ahora quiere ejecutarlos como un proceso de 64 bits, vuelva a compilarlos como Cualquier CPU.

    Sugerencia

    Para tener una flexibilidad máxima, compile los proyectos de prueba con la configuración Cualquier CPU. A continuación, puede ejecutarse en agentes de 32 y 64 bits. No hay ninguna ventaja por compilar los proyectos de prueba con la configuración de 64 bits, a menos que se llame a código que solo se admite en 64 bits.

  2. Establezca las pruebas unitarias para que se ejecuten como un proceso de 64 bits.

    En el menú de Visual Studio, seleccione Prueba y, después, Arquitectura de procesador para proyectos de AnyCPU. Elija x64 para ejecutar las pruebas como un proceso de 64 bits.

    o bien

    Especifique <TargetPlatform>x64</TargetPlatform> en un archivo .runsettings. Una ventaja de este método es que puede especificar grupos de configuración en diferentes archivos y cambiar rápidamente entre diferentes configuraciones. También puede copiar la configuración entre soluciones. Para obtener más información, vea Configurar pruebas unitarias mediante un archivo .runsettings.

    Nota

    La configuración Arquitectura de procesador para proyectos de AnyCPU no se admite en un proyecto de MSTest si establece MSTest como ejecutor de pruebas en lugar de VSTest.