TAEF 테스트 디버깅
디버거 구성
기본적으로 테스트 사례는 TE.exe TE.ProcessHost.exe 아닌 별도의 프로세스에서 실행됩니다.
TE.exe 자식 프로세스 디버깅(windbg/cdb에만 해당)
cdb 또는 windbg와 같은 디버거를 사용하는 경우 단순히 '-o' 스위치를 디버거에 전달할 수 있습니다. 이렇게 하면 동일한 디버거 instance 내에서 자식 프로세스를 자동으로 디버그하도록 디버거가 구성됩니다.
예:
windbg -o te.exe MyTests.dll
그런 다음 테스트가 실행되는 프로세스로 전환하려면 | 를 사용합니다. (파이프) 명령입니다. 프로세스를 전환하기 위한 파이프 명령은 스레드를 전환하기 위한 ~ (tilda) 명령으로 exaclty를 사용합니다.
예:
|1s - sets the current process to the second loaded process.
실행 중인 테스트 "InProc"(Visual Studio/windbg/cdb)
Visual Studio를 사용하여 디버깅을 수행하려는 경우 위의 메서드가 작동하지 않습니다. 이 경우 TE.exe 실행하도록 디버거를 구성하고, 테스트 사례에 적절한 중단점을 설정하고, /inproc 스위치를 TE.exe 전달합니다. 이렇게 하면 모든 테스트가 새 프로세스를 생성하지 않고 TE.exe 프로세스 내에서 실행됩니다.
예:
start devenv /debugexe te.exe MyTests.dll /inproc
위의 명령은 Visual Studio를 시작합니다. 다음으로 테스트 사례에 대한 소스 코드를 열고 적절한 중단점을 설정합니다. 마지막으로 F5 키를 눌러 테스트 사례를 시작하면 첫 번째 중단점에서 중단됩니다(기호가 올바르게 로드된 경우).
위에서 설명한 단계는 Visual Studio에서 올바른 기호가 설정된 경우에만 작동합니다. 적어도 디버깅할 테스트 dll로 기호를 설정해야 합니다. Visual Studio에서 기호를 설정하려면 다음을 수행합니다.
- 도구 메뉴 선택
- 옵션 선택...
- 왼쪽 트리 모양의 메뉴에서 디버깅을 선택합니다.
- 디버깅에서 기호 선택
- 기호 파일(*.pdb) 위치 아래에 기호 경로를 입력합니다. 섹션
- 설정 저장
디버거에 자동으로 침입("breakOnCreate" 및 "breakOnInvoke")
디버깅 프로세스를 용이하게 하기 위해 Taef는 각 테스트 클래스가 인스턴스화되기 전 및/또는 각 테스트 메서드가 호출되기 전에 디버거에 자동으로 침입하는 기능을 제공합니다.
예:
cdb -gG te.exe MyTests.dll /inproc /breakOnCreate /breakOnInvoke
위의 명령은 cdb에서 Te.exe 시작합니다. Taef는 각 테스트 클래스가 인스턴스화되기 직전과 각 테스트 메서드가 호출되기 직전에 디버거에 침입합니다.
참고: 디버거에서 Te.exe 실행하는 동안 이 기능을 사용하고 /inProc 옵션도 지정하는 것이 좋습니다.