Reboot

TAEF를 사용하면 테스트가 컴퓨터를 다시 시작하거나 다시 시작해야 할 수 있음을 지정할 수 있습니다. 이 기능은 테스트를 발생하거나 다시 시작해야 하는 것으로 플래그를 지정하는 메타데이터, TAEF가 다시 시작을 수행하도록 요청하거나 TAEF에 임박한 테스트 시작 다시 시작을 알리는 API, 로컬로 실행할 때 이러한 테스트를 실행하도록 옵트인하는 명령 옵션 등 2~3개의 구성 요소로 구성됩니다.

동작

컴퓨터를 다시 시작하는 특정 의미 체계는 TAEF 실행 모델, 설정 및 정리 작업 보장, 성공 및 실패 동작에 대한 일부 변경이 필요합니다.

  • 다시 시작 동작은 비품(설정 및 정리)이 아닌 테스트(적절한 메타데이터 포함)에서만 사용할 수 있습니다.
  • 다시 부팅 API가 적절한 태그가 있는 테스트 이외의 위치에서 사용되는 경우 함수는 반환되지 않습니다. 대신 TAEF는 테스트 프로세스를 종료합니다. 이는 테스트를 작성하고 테스트 코드를 수정해야 하는 방식의 버그를 나타냅니다.
  • 테스트 픽스쳐는 다시 시작 경계에서 실행되지 않습니다. 즉, 다시 시작 전에 중단 작업이 실행되지 않으며(테스트에서 다시 시작을 시작하는지 또는 TAEF가 다시 시작을 발생시키는 요청이든 상관없이) 다시 시작 후 설치 작업이 실행되지 않습니다.
  • 로깅(및 결과적으로 로그 실패)은 테스트가 완료될 때까지 다시 시작을 알리거나 요청할 때부터 무시됩니다.

메타데이터

다시 부팅 API를 사용하도록 설정하려면 RebootPossible 메타데이터를 "true"로 설정하여 테스트 플래그를 지정해야 합니다. 이 메타데이터는 메타데이터 상속의 일반적인 규칙을 준수하므로 클래스의 테스트가 다시 시작될 수 있는 경우 클래스 수준에서 지정할 수 있습니다(다시 시작의 다소 무거운 특성을 감안할 때 다시 시작할 수 있고 다시 시작할 수 없는 테스트에 대한 명시적 결정을 내리는 것이 좋습니다). 메타데이터 사양의 예 는 C++의 테스트 작성C#의 제작 테스트 에 대한 설명서를 참조하세요.

API

컴퓨터 다시 시작을 처리하기 위한 두 가지 기본 함수가 있습니다.

  • Reboot(Option) 은 TAEF가 테스트 머신의 다시 시작을 시작하라는 요청을 합니다.
  • RebootCustom(옵션) 은 테스트가 테스트 머신을 다시 시작하게 될 것임을 TAEF에 알립니다. 이 API는 시스템 크래시도 지원합니다. TAEF는 API가 반환된 후 해당 데이터가 플러시되도록 합니다.

Option 매개 변수는 다음 중 하나인 다시 시작 동작을 지정합니다.

  • 다시 실행하여 다시 시작한 후 TAEF가 동일한 테스트를 다시 실행하도록 합니다.
  • 계속하여 다시 시작한 후 TAEF가 다음 테스트를 실행하도록 합니다.

네이티브

Interruption.h 헤더를 포함하고 WEX::TestExecution::Interruption 네임스페이스에서 함수를 호출하여 다시 부팅 API에 액세스합니다. 가능한 네 가지 호출은 다음과 같습니다.

using namespace WEX::TestExecution;
Interruption::Reboot(RebootOption::Rerun);
Interruption::Reboot(RebootOption::Continue);
Interruption::RebootCustom(RebootOption::Rerun);
Interruption::RebootCustom(RebootOption::Continue);

관리

WEX의 인터럽트 정 적 클래스에서 두 메서드 중 하나를 호출합니다 . testExecution 네임스페이스는 Te.Managed.dll내에 있습니다.

using WEX.TestExecution;
Interruption.Reboot(RebootOption.Rerun);
Interruption.Reboot(RebootOption.Continue);
Interruption.RebootCustom(RebootOption.Rerun);
Interruption.RebootCustom(RebootOption.Continue);

명령 프롬프트 사용

이 기능의 이상적인 사용법은 컴퓨터 간 실행 또는 WTT를 통해 다시 시작될 수 있는 TAEF 테스트를 실행하는 것입니다. 이러한 경우 TAEF는 작업 흐름을 방해해서는 안 되므로 암시적으로*를 다시 시작할 수 있습니다. 로컬 컴퓨터에서 수동으로 다시 시작 테스트를 실행하거나 TAEF가 상태를 캐시하는 데 사용하는 기본 경로를 재정의해야 하는 경우 테스트를 다시 시작하도록 명시적으로 옵트인해야 합니다. 그렇지 않으면 다시 시작하는 테스트가 차단된 것으로 표시됩니다. 로컬로 실행할 때 다시 시작 테스트를 사용하도록 설정하려면 다음 명령 인수를 사용합니다.

Te.exe /rebootStateFile:MyRestartFile.xml

TAEF는 상태를 저장하도록 지정된 파일(이미 실행된 테스트, TAEF 명령 또는 환경 옵션 등)을 만들고 다시 시작한 후 다시 시작할 때 중단된 위치에서 다시 시작합니다. TAEF는 컴퓨터를 다시 시작한 후 다시 실행되면 자체 실행을 처리합니다.

이 옵션은 TAEF가 다시 부팅한 후 테스트를 다시 시작하기 위해 사용하는 기능이 제거되기 때문에 Arm 컴퓨터에서 작동하지 않습니다(RunOnce 키).

* 호환되지 않는 실행 기능(현재 병렬테스트 모드)을 사용하지 않는 한

질문과 대답

다시 실행을 선택하면 테스트가 처음 호출되는지 아니면 다시 시작한 후에 호출되는지 여부를 알 수 있는 방법이 있나요?

TAEF는 이를 달성하기 위한 기능을 제공하지 않습니다. 다시 실행 옵션의 목적은 컴퓨터의 상태(예: 완료까지 Windows 업데이트 실행)에 따라 확정되지 않은 수의 다시 시작이 필요할 수 있는 테스트를 작성할 수 있도록 하는 것입니다. ExecutionGroup 및 continue 옵션을 사용하여 작업을 다시 시작하기 전/후에 순서대로 발생하는 별도의 테스트 작업으로 분할하는 것이 좋습니다.

지원되는 TAEF 테스트 유형은 무엇입니까?

이 기능은 네이티브, 관리 및 스크립트 테스트에서 사용할 수 있습니다.