Exécution inter-ordinateurs
TAEF prend en charge la possibilité d’exécuter des Te.exe sur une machine, mais d’exécuter les tests sur un ordinateur distinct. TAEF authentifie, autorise et déploie les fichiers binaires nécessaires pour exécuter les tests et consigne toutes les informations dans la console d’origine.
Conditions préalables
Les exigences suivantes sont nécessaires pour exécuter des tests à distance :
- Vous devez installer et exécuter Te.Service (x86 ou x64) sur l’ordinateur cible.
Exécution avec des comptes de domaine
- Le compte de domaine doit être un administrateur ou un membre du groupe local « Utilisateurs TAEF distants » sur l’ordinateur cible.
Exécution avec des comptes hors domaine
Le compte local (non-domaine) doit exister avec le même nom d’utilisateur et le même mot de passe sur les deux ordinateurs.
Cet utilisateur doit être membre du groupe local « Utilisateurs TAEF distants » sur l’ordinateur cible.
Sur l’ordinateur hôte, l’utilisateur local peut exécuter Te.exe, ou vous pouvez également ajouter des informations d’identification génériques pour l’utilisateur local au gestionnaire d’informations d’identification.
cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
Si vous exécutez sur un ordinateur joint à un domaine, l’ordinateur joint à un domaine doit avoir une exclusion de limite IPSec.
Exécution de tests à distance
/runOn :
Pour exécuter des tests à distance, vous devez spécifier le paramètre /runOn:<machine name> à Te.exe avec le reste de vos commandes. Si vous remplissez les conditions préalables, le reste de l’expérience utilisateur sera identique à celui trouvé lors de l’exécution des tests localement. Toute la sortie du journal est enregistrée/écrite sur l’ordinateur local.
Par exemple :
te unittests\wex.common.tests.dll /runon:TAEFTest1
- Envoie tous les fichiers binaires nécessaires pour votre test à l’ordinateur cible (TAEFTest1) et exécute à distance tous les tests TAEF qui existent dans wex.common.tests.dll, tout en vous reconnectant à votre console.
Si vous ne parvenez pas à vous connecter à l’ordinateur distant en raison de l'0x800706BA HRESULT et que vous êtes sûr d’avoir correctement orthographié le nom de l’ordinateur, essayez d’utiliser l’adresse IP de l’ordinateur ou le commutateur /disableTimeouts . Parfois, le délai DNS peut être suffisamment important pour que la tentative de connexion expire.
Note: Si c’est la première fois que vous spécifiez la commande /runOn: , vous devrez peut-être cliquer sur Débloquer dans une boîte de dialogue d’exclusion de pare-feu pour Te.exe.
Tester les dépendances
Te.exe détermine automatiquement toutes les dépendances de module natif et managé de votre test et les envoie à l’ordinateur distant avec votre dll de test. Cela exclut les fichiers binaires système ainsi que les bibliothèques COM dont votre test a besoin.
Vous pouvez spécifier manuellement des dépendances de test supplémentaires via le paramètre de ligne de commande /TestDependencies sous la forme d’une liste délimitée par des points-virgules de fichiers ou de répertoires à copier.
Fichiers
Chaque spécification de fichier peut contenir des caractères génériques (test.txt ; test*.dll ; etc.). Par exemple :
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
- Envoie tous les fichiers binaires nécessaires pour votre test à TAEFTest1, ainsi que tous les fichiers trouvés qui correspondent aux fichiers spécifiés dans le paramètre /TestDependencies .
Directories
TAEF prend en charge les recherches de répertoire récursives pour les répertoires qui existent à l’emplacement ou en dessous du répertoire qui contient le fichier binaire de test. Par exemple :
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
- Envoie tous les fichiers binaires nécessaires pour votre test à TAEFTest1, ainsi que tous les fichiers/répertoires dans ou en dessous du répertoire unittests . TAEF conserve la hiérarchie d’annuaires.
_ te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
- Envoie tous les fichiers binaires nécessaires pour votre test à TAEFTest1, ainsi que tous les fichiers jpg dans ou en dessous du répertoire unittests . TAEF conserve la hiérarchie d’annuaires.
Note: Si vous spécifiez une recherche de répertoire récursif ou non récursif pour un répertoire qui n’existe pas dans ou en dessous du répertoire de test, tous les fichiers sont copiés sur l’ordinateur distant, mais la hiérarchie de répertoires est aplati.
Vous pouvez aso spécifier des dépendances de test via les métadonnées DeploymentItem
Contexte utilisateur
Par défaut, TAEF tente d’exécuter les tests sur l’ordinateur distant avec votre contexte utilisateur. Il le fait par :
- Énumération de toutes les sessions actives sur l’ordinateur distant et recherchez une session qui vous appartient.
Si TAEF trouve une session qui vous appartient sur l’ordinateur distant, il exécute les tests dans cette session (sur ce bureau, etc.).
Note: Il ne s’agit pas nécessairement de la session de console. Il peut s’agir d’une session Bureau à distance.
Si TAEF ne trouve pas une session qui vous appartient sur l’ordinateur distant, il exécute les tests en tant qu’utilisateur connecté à la session de console (sur ce bureau, etc.).
Enfin, si vous ne possédez pas de session sur l’ordinateur distant et que personne n’est connecté à la session de console, TAEF exécute les tests dans la session 0 (non interactive).
RunAs
Si vous spécifiez une valeur /runAs en plus de /runOn, TAEF utilise les heuristiques ci-dessus en plus de celles nécessaires pour remplir le paramètre /runAs . Par exemple :
te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
- Exécute tous les tests TAEF qui existent dans wex.common.tests.dll sur TAEFTest1 avec le compte système.
Fonctionnement
- Te.exe se connecte au instance de Te.Service qui s’exécute sur l’ordinateur distant
- Authentification Windows (Negotiate) vous authentifie auprès de Te.Service.
- Te.Service vous autorise en vérifiant que vous êtes administrateur ou membre du groupe local « Utilisateurs TAEF distants » sur l’ordinateur distant.
- Te.Service crée un répertoire sous RemoteTests, avec le même nom que la dll de test.
- Te.exe génère une liste de fichiers nécessaires pour exécuter vos tests sur l’ordinateur distant. La liste comprend :
- Les fichiers binaires TAEF nécessaires
- Toutes les dépendances binaires natives et/ou managées pour votre dll de test (à l’exception des binaires système)
- Tous les fichiers supplémentaires spécifiés par vous dans le paramètre /TestDependencies
- Te.exe envoie la liste des dépendances de test, ainsi que les crcs pour chaque fichier, à Te.Service.
- Te.Service recherche chaque fichier sur l’ordinateur distant et compare les valeurs CRC. Toutes les correspondances sont supprimées de la liste et la liste est renvoyée au client.
- S’il reste des fichiers dans la liste des dépendances, Te.exe envoie chaque dépendance à Te.Service.
- Te.Service les enregistre dans le <répertoire Te.Service directory>\RemoteTests\<test dll name> directory.
- Te.exe demande à Te.Service de lancer une nouvelle Te.ProcessHost.exe instance sur l’ordinateur distant en utilisant le contexte utilisateur approprié.
- Te.exe se connecte à l'Te.ProcessHost.exe instance distante et commence à exécuter les tests.