Freigeben über


Computerübergreifende Ausführung

TAEF unterstützt die Möglichkeit, Te.exe auf einem Computer auszuführen, aber die Tests auf einem separaten Computer auszuführen. TAEF authentifiziert, autorisiert und stellt die erforderlichen Binärdateien bereit, um die Tests auszuführen, und protokolliert alle Informationen in der ursprünglichen Konsole.

Voraussetzungen

Die folgenden Anforderungen sind erforderlich, um Tests remote auszuführen:

  • Sie müssen Te.Service (entweder x86 oder x64) auf dem Zielcomputer installieren und ausführen.

Ausführen mit Domänenkonten

  • Das Domänenkonto muss ein Administrator oder Mitglied der lokalen Gruppe "Remote TAEF-Benutzer" auf dem Zielcomputer sein.

Ausführen mit Nicht-Domänenkonten

  • Das lokale (Nicht-Domänenkonto) muss auf beiden Computern mit demselben Benutzernamen und Kennwort vorhanden sein.

  • Dieser Benutzer muss Mitglied der lokalen Gruppe "Remote TAEF-Benutzer" auf dem Zielcomputer sein.

  • Auf dem Hostcomputer kann der lokale Benutzer Te.exe ausführen oder alternativ dem Anmeldeinformations-Manager generische Anmeldeinformationen für den lokalen Benutzer hinzufügen.

    cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
    
  • Wenn Sie auf einem in die Domäne eingebundenen Computer ausführen, muss der in die Domäne eingebundene Computer über einen IPSec-Grenzwertausschluss verfügen.

Remoteausführung von Tests

/runOn:

Um Tests remote auszuführen, müssen Sie den Parameter /runOn:<machine name> angeben, um zusammen mit den restlichen Befehlen Te.exe. Wenn Sie die Voraussetzungen erfüllen, ist der Rest der Benutzeroberfläche identisch mit der, die beim lokalen Ausführen von Tests gefunden wurde. Die gesamte Protokollausgabe wird gespeichert/auf den lokalen Computer geschrieben.

Beispiel:

te unittests\wex.common.tests.dll /runon:TAEFTest1
  • Sendet alle erforderlichen Binärdateien für Ihren Test an den Zielcomputer (TAEFTest1) und führt alle TAEF-Tests, die in wex.common.tests.dll vorhanden sind, remote aus, während die Protokollierung bei Ihrer Konsole erfolgt.

Wenn Sie aufgrund von HRESULT-0x800706BA keine Verbindung mit dem Remotecomputer herstellen und sicher sind, dass Sie den Computernamen richtig geschrieben haben, versuchen Sie es mit der IP-Adresse des Computers oder mit dem Schalter /disableTimeouts . Manchmal kann die DNS-Verzögerung groß genug sein, um für den Verbindungsversuch ein Timeout zu verursachen.

Hinweis: Wenn Sie zum ersten Mal den Befehl /runOn: angeben, müssen Sie möglicherweise in einem Firewallausschlussdialogfeld für Te.exe auf Blockierung aufheben klicken.

Testabhängigkeiten

Te.exe ermittelt automatisch alle nativen und verwalteten Modulabhängigkeiten Ihres Tests und sendet sie zusammen mit Ihrer Test-DLL an den Remotecomputer. Dies schließt Systembinärdateien sowie alle COM-Bibliotheken aus, die für Ihren Test erforderlich sind.

Sie können zusätzliche Testabhängigkeiten manuell über den Befehlszeilenparameter /TestDependencies in Form einer durch Semikolon getrennten Liste der zu kopierenden Dateien oder Verzeichnisse angeben.

  • Dateien

    Jede Dateispezifikation kann Wildcardzeichen (test.txt; test*.dll usw.) enthalten. Beispiel:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
    
    • Sendet alle erforderlichen Binärdateien für ihren Test an TAEFTest1 sowie alle gefundenen Dateien, die mit den im Parameter /TestDependencies angegebenen Dateien übereinstimmen.
  • Verzeichnisse

    TAEF unterstützt rekursive Verzeichnissuchen nach Verzeichnissen, die sich in oder unterhalb des Verzeichnisses befinden, das die Testbinärdatei enthält. Beispiel:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
    
    • Sendet alle erforderlichen Binärdateien für Ihren Test an TAEFTest1 sowie alle Dateien/Verzeichnisse innerhalb oder unterhalb des Unittests-Verzeichnisses . TAEF behält die Verzeichnishierarchie bei.
    _    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
    
    • Sendet alle erforderlichen Binärdateien für Ihren Test an TAEFTest1 sowie alle JPG-Dateien innerhalb oder unterhalb des Unittests-Verzeichnisses . TAEF behält die Verzeichnishierarchie bei.

    Hinweis: Wenn Sie eine rekursive oder nicht rekursive Verzeichnissuche für ein Verzeichnis angeben, das am oder unterhalb des Testverzeichnisses nicht vorhanden ist, werden alle Dateien auf den Remotecomputer kopiert, aber die Verzeichnishierarchie wird vereinfacht.

Sie können Testabhängigkeiten über DeploymentItem-Metadaten angeben.

Benutzerkontext

Standardmäßig versucht TAEF, die Tests auf dem Remotecomputer mit Ihrem Benutzerkontext auszuführen. Dies geschieht durch:

  • Auflisten aller aktiven Sitzungen auf dem Remotecomputer und Suche nach einer Sitzung, die Sich im Besitz Von Ihnen befindet.
    • Wenn TAEF auf dem Remotecomputer eine Sitzung findet, die Ihnen gehört, führt es die Tests in dieser Sitzung (auf diesem Desktop usw.) aus.

      Hinweis: Dies ist nicht unbedingt die Konsolensitzung. Es kann sich um eine Remotedesktopsitzung sein.

    • Wenn TAEF auf dem Remotecomputer keine Sitzung findet , die Ihnen gehört, führt es die Tests als der Benutzer aus, der bei der Konsolensitzung angemeldet ist (auf diesem Desktop usw.).

    • Wenn Sie keine Sitzung auf dem Remotecomputer besitzen und niemand bei der Konsolensitzung angemeldet ist, führt TAEF die Tests in Sitzung 0 (nicht interaktiv) aus.

Runas

Wenn Sie zusätzlich zu /runOn einen /runAs-Wert angeben, verwendet TAEF zusätzlich zu den Heuristiken, die zum Erfüllen der Einstellung /runAs erforderlich sind, die oben genannten Heuristiken. Beispiel:

te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
  • Führt alle TAEF-Tests aus, die in wex.common.tests.dll auf TAEFTest1 vorhanden sind, mit dem Systemkonto.

Funktionsweise

  • Te.exe stellt eine Verbindung mit der instance von Te.Service her, die auf dem Remotecomputer ausgeführt wird.
    • Windows-Authentifizierung (Negotiate) authentifiziert Sie beim Te.Service.
    • Te.Service autorisiert Sie, indem Sie überprüfen, ob Sie administrator oder Mitglied der lokalen Gruppe "Remote TAEF-Benutzer" auf dem Remotecomputer sind.
  • Te.Service erstellt unter RemoteTests ein Verzeichnis mit demselben Namen wie die Test-DLL.
  • Te.exe erstellt eine Liste der Dateien, die zum Ausführen ihrer Tests auf dem Remotecomputer erforderlich sind. Diese Liste enthält:
    • Die erforderlichen TAEF-Binärdateien
    • Alle nativen und/oder verwalteten binären Abhängigkeiten für Ihre Test-DLL (mit Ausnahme von Systembinärdateien)
    • Alle zusätzlichen Dateien, die sie im Parameter /TestDependencies angegeben haben
  • Te.exe sendet die Testabhängigkeitsliste zusammen mit den CRCs für jede Datei an Te.Service.
  • Te.Service sucht nach jeder Datei auf dem Remotecomputer und vergleicht die CRC-Werte. Alle Übereinstimmungen werden aus der Liste entfernt, und die Liste wird an den Client zurückgesendet.
  • Wenn in der Abhängigkeitsliste noch Dateien vorhanden sind, sendet Te.exe jede Abhängigkeit an Te.Service.
    • Te.Service speichert sie im <Verzeichnis "Te.Service directory>\RemoteTests\<test dll name> ".
  • Te.exe fordert Te.Service auf, mithilfe des richtigen Benutzerkontexts eine neue Te.ProcessHost.exe instance auf dem Remotecomputer zu starten.
  • Te.exe stellt eine Verbindung mit dem Remote-Te.ProcessHost.exe instance her und beginnt mit der Ausführung der Tests.