컴퓨터 간 실행
TAEF는 한 컴퓨터에서 Te.exe 실행하지만 별도의 컴퓨터에서 테스트를 실행하는 기능을 지원합니다. TAEF는 테스트를 실행하는 데 필요한 이진 파일을 인증, 권한 부여 및 배포하고 모든 정보를 원래 콘솔에 다시 기록합니다.
필수 구성 요소
테스트를 원격으로 실행하려면 다음 요구 사항이 필요합니다.
- 대상 컴퓨터에Te.Service(x86 또는 x64)를 설치하고 실행해야 합니다.
도메인 계정으로 실행
- 도메인 계정은 대상 컴퓨터의 로컬 "원격 TAEF 사용자" 그룹의 관리자 또는 구성원이어야 합니다.
비 도메인 계정으로 실행
로컬(비 도메인 계정)은 두 컴퓨터에서 동일한 사용자 이름과 암호를 가진 존재해야 합니다.
해당 사용자는 대상 컴퓨터의 로컬 "원격 TAEF 사용자" 그룹의 구성원이어야 합니다.
호스트 컴퓨터에서 로컬 사용자는 Te.exe 실행하거나, 또는 자격 증명 관리자에 로컬 사용자에 대한 일반 자격 증명을 추가할 수 있습니다.
cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
도메인에 가입된 컴퓨터에서 실행하는 경우 도메인에 가입된 컴퓨터에는 IPSec 경계 제외가 있어야 합니다.
원격으로 테스트 실행
/runOn:
테스트를 원격으로 실행하려면 /runOn:<machine name> 매개 변수를 지정하여 나머지 명령과 함께 Te.exe 합니다. 필수 구성 요소를 충족하는 경우 나머지 사용자 환경은 로컬에서 테스트를 실행할 때 찾은 환경과 동일합니다. 모든 로그 출력은 로컬 컴퓨터에 저장/기록됩니다.
예:
te unittests\wex.common.tests.dll /runon:TAEFTest1
- 테스트에 필요한 모든 이진 파일을 대상 머신(TAEFTest1)에 보내고 wex.common.tests.dll 내에 있는 모든 TAEF 테스트를 원격으로 실행하면서 콘솔에 다시 로깅합니다.
HRESULT 0x800706BA 인해 원격 머신에 연결하지 못하고 컴퓨터 이름을 올바르게 입력했는지 확인하는 경우 컴퓨터의 IP 주소를 사용하거나 /disableTimeouts 스위치를 사용해 보세요. 경우에 따라 DNS 지연이 충분히 커서 연결 시도가 시간 초과될 수 있습니다.
참고:/runOn: 명령을 처음 지정하는 경우 Te.exe 방화벽 제외 대화 상자에서 차단 해제 를 클릭해야 할 수 있습니다.
종속성 테스트
Te.exe 테스트의 모든 네이티브 및 관리 모듈 종속성을 자동으로 결정하고 테스트 dll과 함께 원격 머신으로 보냅니다. 테스트에 필요한 COM 라이브러리뿐만 아니라 시스템 이진 파일도 제외됩니다.
복사할 파일 또는 디렉터리 세미콜론으로 구분된 목록 형식으로 /TestDependencies 명령줄 매개 변수를 통해 추가 테스트 종속성을 수동으로 지정할 수 있습니다.
파일
각 파일 사양에는 와일드카드 문자(test.txt, test*.dll 등)가 포함될 수 있습니다. 예:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
- 테스트에 필요한 모든 이진 파일을 TAEFTest1에 보내고 /TestDependencies 매개 변수에 지정된 파일과 일치하는 파일을 찾습니다.
Directories
TAEF는 테스트 이진 파일이 포함된 디렉터리 또는 아래에 있는 디렉터리에 대한 재귀 디렉터리 검색을 지원합니다. 예:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
- 테스트에 필요한 모든 이진 파일을 TAEFTest1에 보내고 unittests 디렉터리 내 또는 아래에 있는 모든 파일/디렉터리를 보냅니다. TAEF는 디렉터리 계층 구조를 유지합니다.
_ te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
- 테스트에 필요한 모든 이진 파일을 TAEFTest1에 보내고 unittests 디렉터리 내 또는 아래에 있는 모든 jpg 파일을 보냅니다. TAEF는 디렉터리 계층 구조를 유지합니다.
참고: 테스트 디렉터리 이하 에 존재하지 않는 디렉터리에 대한 재귀 또는 비귀적 디렉터리 검색을 지정하면 모든 파일이 원격 머신에 복사되지만 디렉터리 계층 구조는 평면화됩니다.
DeploymentItem 메타데이터를 통해 테스트 종속성을 aso로 지정할 수 있습니다.
사용자 컨텍스트
기본적으로 TAEF는 사용자 컨텍스트를 사용하여 원격 머신에서 테스트를 실행하려고 시도합니다. 이렇게 하려면 다음을 수행합니다.
- 원격 컴퓨터의 모든 활성 세션을 열거하고 사용자가 소유한 세션을 찾습니다.
TAEF가 원격 머신에서 사용자가 소유한 세션을 찾으면 해당 세션(해당 데스크톱 등)에서 테스트를 실행합니다.
참고: 반드시 콘솔 세션이 아닐 수도 있습니다. 원격 데스크톱 세션일 수 있습니다.
TAEF가 원격 컴퓨터에서 사용자가 소유한 세션을 찾지 못하면 콘솔 세션(해당 데스크톱 등)에 로그인한 사용자로 테스트를 실행합니다.
마지막으로 원격 머신에서 세션을 소유하지 않고 아무도 콘솔 세션에 로그인되지 않은 경우 TAEF는 세션 0(비대화형)에서 테스트를 실행합니다.
Runas
/runOn 외에도 /runAs 값을 지정하는 경우 TAEF는 /runAs 설정을 수행하는 데 필요한 추론 외에도 위의 추론을 사용합니다. 예:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
- 시스템 계정으로 TAEFTest1의 wex.common.tests.dll 내에 있는 모든 TAEF 테스트를 실행합니다.
작동 방식
- Te.exe 원격 컴퓨터에서 실행 중인 Te.Service의 instance 연결합니다.
- Windows 인증(협상)은 Te.Service를 사용하여 사용자를 인증합니다.
- Te.Service는 사용자가 원격 컴퓨터에서 로컬 "원격 TAEF 사용자" 그룹의 관리자 또는 구성원인지 확인하여 사용자에게 권한을 부여합니다.
- Te.Service는 테스트 dll과 동일한 이름으로 RemoteTests 아래에 디렉터리를 만듭니다.
- Te.exe 원격 컴퓨터에서 테스트를 실행하는 데 필요한 파일 목록을 빌드합니다. 이 목록에는 다음이 포함됩니다.
- 필요한 TAEF 이진 파일
- 테스트 dll에 대한 모든 네이티브 및/또는 관리되는 이진 종속성(시스템 이진 파일 제외)
- /TestDependencies 매개 변수에서 사용자가 지정한 추가 파일
- Te.exe 각 파일에 대한 CRC와 함께 테스트 종속성 목록을 Te.Service로 보냅니다.
- Te.Service는 원격 컴퓨터의 각 파일을 찾고 CRC 값을 비교합니다. 일치하는 항목이 목록에서 제거되고 목록이 클라이언트로 다시 전송됩니다.
- 종속성 목록에 파일이 남아 있는 경우 Te.exe 각 종속성을 Te.Service로 보냅니다.
- Te.Service는 <Te.Service 디렉터리>\RemoteTests\<test dll 이름> 디렉터리에 저장합니다.
- Te.exe Te.Service에 올바른 사용자 컨텍스트를 사용하여 원격 머신에서 새 Te.ProcessHost.exe instance 시작하도록 요청합니다.
- Te.exe 원격 Te.ProcessHost.exe instance 연결하고 테스트 실행을 시작합니다.