병렬
TAEF는 여러 프로세서에서 동시에 테스트를 실행하는 메커니즘을 제공합니다.
병렬 처리 보장
- 병렬 처리 가능으로 표시되지 않은 두 테스트는 동시에 실행되지 않습니다.
- 병렬 테스트는 다른 병렬 및 비 병렬 테스트와 동시에 실행할 수 있습니다.
- 모든 모듈/클래스/테스트 설정 및 클린 동일한 프로세스에서 관련 테스트 전후에 선형으로 실행됩니다.
- 모듈/클래스 설정은 모듈 또는 클래스에 하나 이상의 병렬 테스트가 포함된 경우 다른 프로세스에서 병렬로 실행될 수 있습니다.
- 병렬 실행 모드는 "/inproc" 실행 메커니즘과 호환되지 않습니다.
테스트를 병렬 처리 가능으로 표시
예제(네이티브 코드):
class MyTests
{
TEST_CLASS(MyTests);
BEGIN_TEST_METHOD(ParallelTest)
TEST_METHOD_PROPERTY(L"Parallel", L"true")
END_TEST_METHOD()
};
TAEF의 다른 일반 메타데이터와 마찬가지로 클래스 또는 모듈 수준에서 지정할 수 있으며 해당 클래스 또는 모듈에 포함된 모든 테스트에서 상속됩니다. 예를 들어 전체 어셈블리를 병렬 처리 가능으로 표시하려면 테스트 DLL로 컴파일된 cpp 파일에서 다음(클래스 또는 테스트 사양 외부)을 수행할 수 있습니다.
BEGIN_MODULE()
MODULE_PROPERTY(L"Parallel", L"true");
END_MODULE()
그러면 이 더 넓은 범위를 더 작은 범위에서 재정의하여 다음과 같이 특정 테스트 사례 또는 클래스에 대해 병렬 처리를 사용하지 않도록 설정할 수 있습니다.
class MyTests
{
TEST_CLASS(MyTests);
BEGIN_TEST_METHOD(NonParallelTest)
TEST_METHOD_PROPERTY(L"Parallel", L"false");
END_TEST_METHOD()
};
테스트 메서드에 가장 가까운 설정(메서드 메타데이터는 가장 가까운 다음 클래스, 모듈)을 사용하여 이 테스트를 다른 테스트와 병렬로 실행할지 여부를 결정합니다.
명령 프롬프트에서 병렬 처리 사용
병렬 실행은 옵트인 기능입니다. 테스트가 병렬로 표시될 수 있지만 명령 프롬프트에서 병렬 실행 모드를 사용하도록 설정하지 않는 한 TAEF는 테스트를 선형으로 계속 실행합니다.
te unittests\* /parallel