Compartir a través de


Ejecución entre máquinas

TAEF admite la capacidad de ejecutar Te.exe en una máquina, pero ejecutar las pruebas en una máquina independiente. TAEF autentica, autoriza e implementa los archivos binarios necesarios para ejecutar las pruebas y registrar toda la información en la consola de origen.

Requisitos previos

Los siguientes requisitos son necesarios para ejecutar pruebas de forma remota:

  • Debe instalar y ejecutar Te.Service (x86 o x64) en el equipo de destino.

Ejecución con cuentas de dominio

  • La cuenta de dominio debe ser un administrador o miembro del grupo local "Usuarios de TAEF remotos" en el equipo de destino.

Ejecución con cuentas que no son de dominio

  • La cuenta local (que no es de dominio) debe existir con el mismo nombre de usuario y contraseña en ambos equipos.

  • Ese usuario debe ser miembro del grupo local "Usuarios de TAEF remotos" en la máquina de destino.

  • En el equipo host, el usuario local puede ejecutar Te.exe o, como alternativa, puede agregar credenciales genéricas para el usuario local al administrador de credenciales.

    cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
    
  • Si se ejecuta en una máquina unida a un dominio, la máquina unida a un dominio debe tener una exclusión de límites IPSec.

Ejecutar pruebas de forma remota

/runOn:

Para ejecutar pruebas de forma remota, debe especificar el parámetro /runOn:<machine name> para Te.exe junto con el resto de los comandos. Si cumple los requisitos previos, el resto de la experiencia del usuario será idéntica a la que se encuentra al ejecutar pruebas localmente. Toda la salida del registro se guardará o escribirá en la máquina local.

Por ejemplo:

te unittests\wex.common.tests.dll /runon:TAEFTest1
  • Envía todos los archivos binarios necesarios para la prueba a la máquina de destino (TAEFTest1) y ejecuta de forma remota todas las pruebas de TAEF que existen dentro de wex.common.tests.dll, al iniciar sesión en la consola.

Si no puede conectarse a la máquina remota debido al 0x800706BA HRESULT y está seguro de que escribió correctamente el nombre de la máquina, intente usar la dirección IP de la máquina o mediante el modificador /disableTimeouts . A veces, el retraso de DNS puede ser lo suficientemente grande como para provocar que el intento de conexión agote el tiempo de espera.

Nota: Si esta es la primera vez que se especifica el comando /runOn: , es posible que tenga que hacer clic en Desbloquear en un cuadro de diálogo de exclusión de firewall para Te.exe.

Dependencias de prueba

Te.exe determina automáticamente todas las dependencias del módulo nativo y administrado de la prueba y las envía al equipo remoto junto con el archivo DLL de prueba. Esto excluye los archivos binarios del sistema , así como las bibliotecas COM que requiera la prueba.

Puede especificar manualmente dependencias de prueba adicionales a través del parámetro de línea de comandos /TestDependencies en forma de una lista delimitada por punto y coma de archivos o directorios que se van a copiar.

  • Archivos

    Cada especificación de archivo puede contener caracteres comodín (test.txt; test*.dll, etc.). Por ejemplo:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
    
    • Envía todos los archivos binarios necesarios para la prueba a TAEFTest1, así como los archivos encontrados que coincidan con los archivos especificados en el parámetro /TestDependencies .
  • Directorios

    TAEF admite búsquedas de directorio recursivos que existen en o debajo del directorio que contiene el binario de prueba. Por ejemplo:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
    
    • Envía todos los archivos binarios necesarios para la prueba a TAEFTest1, así como todos los archivos o directorios dentro o debajo del directorio unittests . TAEF conserva la jerarquía de directorios.
    _    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
    
    • Envía todos los archivos binarios necesarios para su prueba a TAEFTest1, así como todos los archivos jpg dentro o debajo del directorio unittests . TAEF conserva la jerarquía de directorios.

    Nota: Si especifica un directorio recursivo o no recursivo, busque un directorio que no exista en o debajo del directorio de prueba, todos los archivos se copiarán en la máquina remota, pero la jerarquía de directorios se aplanará.

Puede especificar las dependencias de prueba mediante metadatos deploymentItem.

Contexto de usuario

De forma predeterminada, TAEF intenta ejecutar las pruebas en la máquina remota con el contexto del usuario. Para ello, hace lo siguiente:

  • Enumerar todas las sesiones activas en el equipo remoto y buscar una sesión que sea propiedad de usted.
    • Si TAEF encuentra una sesión que es propiedad de usted en la máquina remota, ejecuta las pruebas en esa sesión (en ese escritorio, etc.).

      Nota: Esto no será necesariamente la sesión de consola. Podría ser una sesión de escritorio remoto.

    • Si TAEF no encuentra una sesión que sea propiedad de usted en el equipo remoto, ejecuta las pruebas como el usuario que ha iniciado sesión en la sesión de consola (en ese escritorio, etc.).

    • Por último, si no posee una sesión en la máquina remota y nadie ha iniciado sesión en la sesión de consola, TAEF ejecutará las pruebas en la sesión 0 (no interactiva).

RunAs

Si especifica un valor /runAs además de /runOn, TAEF usa la heurística anterior además de las necesarias para cumplir la configuración /runAs . Por ejemplo:

te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
  • Ejecuta todas las pruebas de TAEF que existen dentro de wex.common.tests.dll en TAEFTest1 con la cuenta del sistema.

Cómo funciona

  • Te.exe se conecta a la instancia de Te.Service que se ejecuta en el equipo remoto
    • autenticación de Windows (Negotiate) le autentica con te.Service.
    • Te.Service le autoriza comprobando que es administrador o miembro del grupo local "Usuarios de TAEF remotos" en el equipo remoto.
  • Te.Service crea un directorio en RemoteTests, con el mismo nombre que el archivo dll de prueba.
  • Te.exe compila una lista de archivos necesarios para ejecutar las pruebas en el equipo remoto. La lista incluye lo siguiente:
    • Los archivos binarios de TAEF necesarios
    • Todas las dependencias binarias nativas o administradas del archivo DLL de prueba (excepto los archivos binarios del sistema)
    • Cualquier archivo adicional especificado por usted en el parámetro /TestDependencies
  • Te.exe envía la lista de dependencias de prueba, junto con los CRC de cada archivo, a Te.Service.
  • Te.Service busca cada archivo en el equipo remoto y compara los valores CRC. Las coincidencias se quitan de la lista y la lista se devuelve al cliente.
  • Si quedan archivos en la lista de dependencias, Te.exe envía cada dependencia a Te.Service.
    • Te.Service los guarda en el <directorio> Te.Service\RemoteTests\<test dll name> .
  • Te.exe pide a Te.Service que inicie una nueva instancia de Te.ProcessHost.exe en el equipo remoto mediante el contexto de usuario correcto.
  • Te.exe se conecta a la instancia remota de Te.ProcessHost.exe y comienza a ejecutar las pruebas.