TFS/Azure DevOps Services에서 부분적으로 매핑된 TFVC 리포지토리에 대한 테스트 영향
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
TIA(테스트 영향 분석)는 작업의 버전 2부터 VSTest 작업의 일부였습니다. 이 기능은 빌드에 대한 관련 테스트만 실행하는 데 도움이 되므로 DevOps 주기 속도를 높일 수 있습니다. 실제로 전체 테스트 도구 모음이 아닌 들어오는 변경 내용의 영향을 받는 테스트를 실행하게 됩니다. 테스트 영향 분석에 대한 자세한 내용은 TIA(테스트 영향 분석)를 사용하여 테스트 속도 향상을 참조하세요.
TIA는 Azure DevOps에서 GitHub 및 Git을 지원하는 것 외에도 TFVC를 지원합니다. 이 문서에서는 TFVC를 기반으로 하는 빌드/릴리스 파이프라인의 TIA에 대한 알려진 제한 사항과 이 제한을 벗어나기 위한 작업에 대해 설명합니다.
부분적으로 매핑된 TFVC 리포지토리 문제
TIA가 작동하는 방식은 테스트 메서드가 첫 번째 실행 중에 터치하는 파일(기본 줄 실행이라고도 함)에 대한 데이터를 수집하는 것입니다. 이 데이터를 수집하는 수집기에는 에이전트 머신에 등록된 리포지토리의 표시 유형만 있습니다. TFVC 기반 파이프라인을 사용하면 부분 리포지토리를 등록하는 옵션이 제공됩니다. 예를 들어 다음과 같은 구조의 리포지토리를 고려합니다.
이제 빌드/릴리스 파이프라인에서 다음 예제와 같이 프로세스 아래에 원본 가져오기 타일이 표시됩니다.
원본 가져오기를 선택하면 오른쪽 블레이드에 리포지토리를 부분적으로 매핑하는 옵션이 표시됩니다.
이전 예제와 같이 전체 리포지토리를 등록하는 경우 TIA는 계속 정상적으로 작동하지만 다음 예제와 같이 부분적으로 등록하면 TIA가 영향을 받은 테스트를 찾지 못합니다.
TFVC 리포지토리가 부분적으로 등록되면 수집기가 에이전트에 부분적으로 등록된 리포지토리에 대한 변경 내용만 수집할 수 있고 전체 경로에 대한 가시성이 없기 때문에 TIA는 영향을 받은 테스트를 찾지 못합니다. 코드 변경이 서버에서 들어오면 전체 경로가 제공되고 매핑된 경로와 일치하는 시도가 실패합니다.
해결 방법
이 문제를 해결하려면 부분 리포지토리를 서버의 전체 코드 구조에 매핑하여 로컬 인리스트먼트에 있는 파일의 전체 경로가 전체 서버 경로와 일치하도록 할 수 있습니다. 이렇게 하려면 다음 예제와 같이 서버 경로와 일치하는 로컬 경로를 지정할 수 있습니다.
이렇게 하면 서버 경로가 수집기에서 수집한 경로와 일치하고 영향을 받는 테스트가 올바르게 나열됩니다.