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.