Partilhar via


Execução entre máquinas

O TAEF dá suporte à capacidade de executar Te.exe em um computador, mas executar os testes em um computador separado. O TAEF autentica, autoriza e implanta os binários necessários para executar os testes e registra todas as informações de volta no console de origem.

Pré-requisitos

Os seguintes requisitos são necessários para executar testes remotamente:

  • Você deve instalar e executar o Te.Service (x86 ou x64) no computador de destino.

Executando com contas de domínio

  • A conta de domínio deve ser um administrador ou membro do grupo local "Usuários taef remotos" no computador de destino.

Executando com contas que não são de domínio

  • O local (conta não domínio) deve existir com o mesmo nome de usuário e senha em ambos os computadores.

  • Esse usuário deve ser membro do grupo local "Usuários taef remotos" no computador de destino.

  • No computador host, o usuário local pode executar Te.exe ou, como alternativa, você pode adicionar credenciais genéricas para o usuário local ao gerenciador de credenciais.

    cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
    
  • Se você estiver executando em um computador ingressado no domínio, o computador ingressado no domínio deverá ter uma exclusão de limite IPSec.

Executando testes remotamente

/runOn:

Para executar testes remotamente, você deve especificar o parâmetro /runOn:<machine name> para Te.exe junto com o restante dos comandos. Se você atender aos pré-requisitos, o restante da experiência do usuário será idêntico ao encontrado ao executar testes localmente. Todas as saídas de log serão salvas/gravadas no computador local.

Por exemplo:

te unittests\wex.common.tests.dll /runon:TAEFTest1
  • Envia todos os binários necessários para o teste para o computador de destino (TAEFTest1) e executa remotamente todos os testes TAEF que existem em wex.common.tests.dll, ao fazer logon de volta no console.

Se você não conseguir se conectar ao computador remoto devido ao HRESULT 0x800706BA e tiver certeza de que digitou o nome do computador corretamente, tente usar o endereço IP do computador ou usando a opção /disableTimeouts . Às vezes, o atraso de DNS pode ser grande o suficiente para causar o tempo limite da tentativa de conexão.

Nota: Se essa for a primeira vez que especificar o comando /runOn: , talvez seja necessário clicar em Desbloquear em uma caixa de diálogo de exclusão de firewall para Te.exe.

Testar dependências

Te.exe determina automaticamente todas as dependências do módulo nativo e gerenciado do teste e as envia para o computador remoto juntamente com a dll de teste. Isso exclui binários do sistema , bem como todas as bibliotecas COM que seu teste requer.

Você pode especificar manualmente dependências de teste adicionais por meio do parâmetro de linha de comando /TestDependencies na forma de uma lista delimitada por ponto e vírgula de arquivos ou diretórios a serem copiados.

  • Arquivos

    Cada especificação de arquivo pode conter caracteres curinga (test.txt; test*.dll; etc.). Por exemplo:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
    
    • Envia todos os binários necessários para o teste para TAEFTest1, bem como todos os arquivos encontrados que correspondem aos arquivos especificados no parâmetro /TestDependencies .
  • Diretórios

    O TAEF dá suporte a pesquisas de diretório recursivo para diretórios que existem no diretório que contém o binário de teste. Por exemplo:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
    
    • Envia todos os binários necessários para o teste para TAEFTest1, bem como todos os arquivos/diretórios dentro ou abaixo do diretório unittests . O TAEF mantém a hierarquia de diretório.
    _    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
    
    • Envia todos os binários necessários para o teste para TAEFTest1, bem como todos os arquivos jpg dentro ou abaixo do diretório unittests . O TAEF mantém a hierarquia de diretório.

    Nota: Se você especificar uma pesquisa de diretório recursiva ou não recursiva para um diretório que não existe no diretório de teste ou abaixo , todos os arquivos serão copiados para o computador remoto, mas a hierarquia de diretório será nivelada.

Você pode especificar as dependências de teste por meio de metadados DeploymentItem

Contexto do usuário

Por padrão, o TAEF tenta executar os testes no computador remoto com o contexto do usuário. Ele faz isso por:

  • Enumerando todas as sessões ativas no computador remoto e procurando uma sessão que pertence a você.
    • Se o TAEF encontrar uma sessão que pertence a você no computador remoto, ela executará os testes nessa sessão (nessa área de trabalho, etc.).

      Nota: Essa não será necessariamente a sessão de console. Pode ser uma sessão de área de trabalho remota.

    • Se o TAEF não encontrar uma sessão pertencente a você no computador remoto, ele executará os testes como o usuário que está conectado à sessão do console (nessa área de trabalho, etc.).

    • Por fim, se você não tiver uma sessão no computador remoto e ninguém estiver conectado à sessão do console, o TAEF executará os testes na sessão 0 (não interativa).

RunAs

Se você especificar um valor /runAs além de /runOn, o TAEF usará a heurística acima, além daquelas necessárias para atender à configuração /runAs . Por exemplo:

te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
  • Executa todos os testes TAEF que existem em wex.common.tests.dll no TAEFTest1 com a conta do sistema.

Como funciona

  • Te.exe se conecta à instância do Te.Service em execução no computador remoto
    • autenticação do Windows (Negociar) autentica você com o Te.Service.
    • O Te.Service autoriza você verificando se você é um administrador ou membro do grupo local "Usuários remotos do TAEF" no computador remoto.
  • O Te.Service cria um diretório em RemoteTests, com o mesmo nome que a dll de teste.
  • Te.exe cria uma lista de arquivos necessários para executar seus testes no computador remoto. Essa lista inclui:
    • Os binários TAEF necessários
    • Todas as dependências binárias nativas e/ou gerenciadas para a dll de teste (excluindo binários do sistema)
    • Todos os arquivos adicionais especificados por você no parâmetro /TestDependencies
  • Te.exe envia a lista de dependências de teste, juntamente com os CRCs para cada arquivo, para o Te.Service.
  • O Te.Service procura cada arquivo no computador remoto e compara os valores de CRC. Todas as correspondências são removidas da lista e a lista é enviada de volta ao cliente.
  • Se houver arquivos restantes na lista de dependências, Te.exe enviará cada dependência para o Te.Service.
    • O Te.Service os salva no <diretório> Te.Service\RemoteTests\<test dll name> directory.
  • Te.exe solicita ao Te.Service que inicie uma nova instância de Te.ProcessHost.exe no computador remoto usando o contexto de usuário correto.
  • Te.exe se conecta à instância de Te.ProcessHost.exe remota e começa a executar os testes.