Esecuzione tra computer
TAEF supporta la possibilità di eseguire Te.exe in un computer, ma eseguire i test in un computer separato. TAEF autentica, autorizza e distribuisce i file binari necessari per eseguire i test e registra tutte le informazioni nella console di origine.
Prerequisiti
Per eseguire i test in remoto, sono necessari i requisiti seguenti:
- È necessario installare ed eseguire Te.Service (x86 o x64) nel computer di destinazione.
Esecuzione con account di dominio
- L'account di dominio deve essere un amministratore o un membro del gruppo locale "Utenti TAEF remoti" nel computer di destinazione.
Esecuzione con account non di dominio
L'account locale (account non di dominio) deve esistere con lo stesso nome utente e la stessa password in entrambi i computer.
L'utente deve essere membro del gruppo locale "Utenti TAEF remoti" nel computer di destinazione.
Nel computer host l'utente locale può eseguire Te.exe o, in alternativa, è possibile aggiungere credenziali generice per l'utente locale alla gestione credenziali.
cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
Se si esegue in un computer aggiunto a un dominio, il computer aggiunto al dominio deve avere un'esclusione di limite IPSec.
Esecuzione di test in remoto
/runOn:
Per eseguire test in remoto, è necessario specificare il parametro /runOn:<machine name> per Te.exe insieme al resto dei comandi. Se si soddisfano i prerequisiti, il resto dell'esperienza utente sarà identico a quello trovato durante l'esecuzione di test in locale. Tutti gli output del log verranno salvati/scritti nel computer locale.
Ad esempio:
te unittests\wex.common.tests.dll /runon:TAEFTest1
- Invia tutti i file binari necessari per il test al computer di destinazione (TAEFTest1) ed esegue in remoto tutti i test TAEF presenti all'interno di wex.common.tests.dll, durante la registrazione alla console.
Se non si riesce a connettersi al computer remoto a causa di HRESULT 0x800706BA e si è certi che il nome del computer sia stato scritto correttamente, provare a usare l'indirizzo IP del computer o l'opzione /disableTimeouts . A volte il ritardo DNS può essere abbastanza grande per causare il timeout del tentativo di connessione.
Nota: Se si tratta della prima volta che specifica il comando /runOn: potrebbe essere necessario fare clic su Sblocca in una finestra di dialogo di esclusione del firewall per Te.exe.
Testare le dipendenze
Te.exe determina automaticamente tutte le dipendenze del modulo nativo e gestito del test e li invia al computer remoto insieme alla dll di test. Ciò esclude i file binari di sistema e tutte le librerie COM necessarie per il test.
È possibile specificare manualmente dipendenze di test aggiuntive tramite il parametro della riga di comando /TestDependencies sotto forma di elenco delimitato da punti e virgola di file o directory da copiare.
File
Ogni specifica di file può contenere caratteri jolly (test.txt; test*.dll; ecc.). Ad esempio:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
- Invia tutti i file binari necessari per il test a TAEFTest1 e a tutti i file trovati che corrispondono ai file specificati nel parametro /TestDependencies .
Directory
TAEF supporta le ricerche ricorsive di directory per le directory presenti nella directory o sotto la directory contenente il file binario di test. Ad esempio:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
- Invia tutti i file binari necessari per il test a TAEFTest1, nonché a tutti i file/directory all'interno o al di sotto della directory unittest. TAEF mantiene la gerarchia di directory.
_ te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
- Invia tutti i file binari necessari per il test a TAEFTest1 e a tutti i file jpg all'interno o sotto la directory unittests . TAEF mantiene la gerarchia di directory.
Nota: Se si specifica una directory ricorsiva o non ricorsiva per una directory che non esiste o sotto la directory di test, tutti i file verranno copiati nel computer remoto, ma la gerarchia di directory verrà appiattita.
È possibile specificare le dipendenze di test tramite i metadati deploymentItem
Contesto utente
Per impostazione predefinita, TAEF tenta di eseguire i test nel computer remoto con il contesto utente. Lo fa in base a:
- Enumerazione di tutte le sessioni attive nel computer remoto e ricerca di una sessione di proprietà dell'utente.
Se TAEF trova una sessione di proprietà del computer remoto, esegue i test in tale sessione (su tale desktop e così via).
Nota: Questa operazione non sarà necessariamente la sessione della console. Potrebbe trattarsi di una sessione desktop remoto.
Se TAEF non trova una sessione di proprietà dell'utente nel computer remoto, esegue i test come utente che accede alla sessione della console (su tale desktop e così via).
Infine, se non si possiede una sessione nel computer remoto e nessuno viene connesso alla sessione della console, TAEF eseguirà i test nella sessione 0 (non interattiva).
Runas
Se si specifica un valore /runAs oltre a /runOn, TAEF usa gli heuristici precedenti oltre a quelli necessari per soddisfare l'impostazione /runAs . Ad esempio:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
- Esegue tutti i test TAEF presenti all'interno di wex.common.tests.dll in TAEFTest1 con l'account di sistema.
Funzionamento
- Te.exe si connette all'istanza di Te.Service in esecuzione nel computer remoto
- autenticazione di Windows (Negozia) autentica l'utente con Te.Service.
- Te.Service autorizza l'utente verificando che si sia un amministratore o un membro del gruppo locale "Utenti TAEF remoti" nel computer remoto.
- Te.Service crea una directory in RemoteTests, con lo stesso nome della dll di test.
- Te.exe compila un elenco di file necessari per eseguire i test nel computer remoto. L'elenco include:
- File binari TAEF necessari
- Tutte le dipendenze binarie native e/o gestite per la dll di test (esclusi i file binari di sistema)
- Eventuali file aggiuntivi specificati dall'utente nel parametro /TestDependencies
- Te.exe invia l'elenco delle dipendenze di test, insieme ai CCR per ogni file, a Te.Service.
- Te.Service cerca ogni file nel computer remoto e confronta i valori CRC. Le corrispondenze vengono rimosse dall'elenco e l'elenco viene inviato nuovamente al client.
- Se sono presenti file lasciati nell'elenco delle dipendenze, Te.exe invia ogni dipendenza a Te.Service.
- Te.Service li salva nella <directory> Te.Service\RemoteTests\<test dll name> .
- Te.exe chiede a Te.Service di avviare una nuova istanza Te.ProcessHost.exe nel computer remoto usando il contesto utente corretto.
- Te.exe si connette all'istanza di Te.ProcessHost.exe remota e inizia a eseguire i test.