Execução entre arquiteturas
O TAEF dá suporte à capacidade de executar testes de arquiteturas diferentes com a mesma linha de comando, desde que o sistema operacional que executa os testes dê suporte a eles. Isso significa que, por exemplo, os testes x64 e x86 (em um sistema operacional x64) podem ser executados com uma única linha de comando "te.exe".
Pré-requisitos
Para executar testes para uma arquitetura diferente da própria "te.exe", os binários TAEF para essa arquitetura precisam estar disponíveis para "te.exe". A arquitetura de destino pode ser qualquer uma das seguintes:
- x86
- x64
- ia64
O TAEF procurará em uma pasta chamada para a arquitetura de destino em relação ao 'te.exe' original para os binários TAEF dessa arquitetura.
Executando testes para uma arquitetura diferente
Executar testes para uma arquitetura diferente não requer nenhuma configuração extra – basta passar a DLL fornecida como um parâmetro para "te.exe". O TAEF inspecionará o binário para identificar sua arquitetura de destino e instanciará o processo de host correto para carregar e executar os testes. Por exemplo, um x86 'te.exe' pode inspecionar uma DLL de teste x64 e iniciará um processo x64 para executar os testes:
c:\taef\x86>te x64\Scenario.Tests.dll
Como a linha de comando 'te.exe' pode usar várias DLL de Teste, você pode misturar arquiteturas e o TAEF escolherá os processos de host corretos para a DLL de Teste fornecida:
c:\taef\x86>te x64\Scenario.Tests.dll x86\Scenario.Tests.dll x64\UI.Tests.dll
Isso permite que os usuários do TAEF obtenham mais cobertura de teste de uma única linha de comando, com todos os resultados acumulados em um único log. Sem essa funcionalidade, os testes para cada arquitetura teriam que ser reunidos em sua própria linha de comando, executados individualmente e os resultados de cada execução combinada.
Se um determinado Arquivo de Teste não for específico da arquitetura (por exemplo, um binário C# compilado para IL puro), ele será executado usando a mesma arquitetura que o "te.exe" para o qual foi passado.
Selecionando testes por arquitetura
O TAEF aplica automaticamente os metadados de "Arquitetura" aos Arquivos de Teste que exigem uma arquitetura específica. O valor dos metadados 'Arquitetura' é a arquitetura necessária para executar os testes e será um dos seguintes:
- x86
- x64
- ia64
Para selecionar testes para uma arquitetura específica, você pode usar o idioma de seleção para corresponder aos metadados de "Arquitetura". Por exemplo, se a pasta 'Testes' contiver uma combinação de arquivos de teste x86 e x64, a seguinte linha de comando executará apenas os testes x64:
c:\taef\x86>te Tests\*.Tests.dll /select:@Architecture='x64'
Erros
Passar um arquivo de teste compilado para uma arquitetura diferente para TAEF sem os binários de arquitetura de destino necessários presentes resultará em uma mensagem de erro. O exemplo a seguir mostra um x86 'te.exe' tentando executar testes x64, sem que a subpasta 'x64' seja preenchida com os binários necessários:
c:\>te x64\Scenario.Tests.dll
Test Authoring and Execution Framework v2.2 Build 6.1.7689.0 (release.091218-1251) for x86
Error: Please copy all x64 TAEF binaries to the 'c:\taef\x86\x64' directory in order to run x64 tests from this process.
Error: Failed to create the ProcessHostController. TE.ProcessHost.exe may be unavailable. Terminating execution...
Error: No test cases were executed.