핫 다시 로드 테스트 실행

Visual Studio의 테스트 실행에는 테스트 플랫폼을 사용하여 테스트를 실행하기 전에 디스크의 이진 파일을 업데이트하는 프로젝트를 빌드하는 작업이 포함됩니다. Visual Studio 내의 빌드 시간은 코드에 대한 변경 유형에 따라 달라질 수 있습니다. 대규모 솔루션의 경우 빌드는 테스트 실행에서 가장 비용이 많이 드는 부분이 될 수 있습니다. Visual Studio 2022 이상에서는 핫 다시 로드 테스트 실행을 사용하도록 설정하여 지원되는 시나리오에 대한 빌드를 건너뛰어 테스트 실행 속도를 단축할 수 있습니다.

지원 대상

  • .NET 6.0 이상을 대상으로 하는 C# 및 VB 프로젝트
  • 디버그 구성용으로 빌드된 테스트 프로젝트
  • Visual Studio 2022 이상

핫 다시 로드 테스트 실행 사용

테스트>옵션>’(실험적) .NET 6 이상을 대상으로 하는 C# 및 VB 테스트 프로젝트에 대해 핫 다시 로드 테스트 실행을 사용하도록 설정’을 선택하여 이 기능을 사용하도록 설정합니다. Screenshot of the Enable Hot Reloaded Test Runs button on the Visual Studio Test Options page. When this is selected, tests execution will use hot reload for supported scenarios

실험적 기능인 이유

이것은 널리 사용되는 코드 유효성 검사 경로를 변경하는 새로운 테스트 실행 방법입니다. 또한 사용자로부터 피드백을 받으면 이 기능에 대한 사용자 환경이 변경될 것으로 예상합니다. 이러한 두 가지 이유로 현재 이 기능의 레이블을 ‘실험적’으로 지정했습니다.

작동 방법

이 옵션을 사용하도록 설정하면 테스트 탐색기는 가능한 경우 핫 다시 로드 테스트 실행을 자동으로 사용합니다. 핫 다시 로드가 불가능한 경우 테스트를 빌드하고 실행하는 일반 동작으로 돌아갑니다. 테스트를 실행하는 사용자는 워크플로를 변경할 필요가 없습니다. 즉, 코드를 계속 편집하고 테스트를 실행합니다.

내부적으로, 새로 릴리스된 런타임에 C#/VB 코드를 편집하기 위한 핫 다시 로드 환경에 존재하는 동일한 편집하며 계속하기 인프라를 사용하여 변경 내용을 확인하고 있습니다. 이러한 이유로 ‘편집 다시 실행’이 없는 경우에만 핫 다시 로드합니다. ‘편집 다시 실행’이 있는 경우에는 테스트 빌드 후 실행으로 돌아갑니다. 지원되는 편집에 대한 자세한 내용은 편집 및 계속하기 설명서를 참조하세요.

테스트 실행 속도 향상 정도

이 기능으로 얼마나 시간이 단축될지 예상하려면 여러 변수를 고려해야 합니다. 예시:

  • 프로젝트 빌드에 걸리는 시간
  • 수행한 편집의 유형
  • 편집한 파일의 크기
  • 편집한 위치(리프 프로젝트였는지 여부)

궁극적으로 속도 향상은 특정 테스트 실행에서 발생한 빌드 시간과 직접 관련됩니다.

주의

  • 이 옵션을 사용하도록 설정한 후 또는 Visual Studio를 연 후 첫 번째 테스트를 실행하면 프로젝트 빌드가 발생합니다.
  • 테스트를 실행할 때 편집기에서 파일이 저장되지 않을 수 있습니다. 이러한 문제를 해결하려면 체크 인하기 전에 전체 빌드(Ctrl+Shift+B)를 수행해야 합니다.
  • 핫 다시 로드 테스트 실행이 발생하면 디스크의 이진 파일이 업데이트되지 않습니다.
  • 핫 다시 로드 테스트 실행은 ‘테스트>모든 테스트 실행’에서도, 테스트 탐색기의 ‘보기의 모든 테스트 실행’에서도, 솔루션 탐색기 내 솔루션 노드의 모든 테스트 실행에서도 작동하지 않습니다. 이러한 명령은 현재 전체 솔루션 빌드를 보장하므로 기능은 이러한 명령으로 작동하지 않습니다.
  • 지원되지 않는 대상 프레임워크(.NET 6.0보다 낮음)를 통해 테스트를 실행하면 프로젝트 빌드가 발생합니다.
  • 디스크에 있는 내용과 테스트 탐색기에 표시되는 내용이 일치하지 않는 경우 Ctrl+Shift+B를 사용한 솔루션/프로젝트 빌드를 고려한 다음 테스트를 실행하세요. 명시적 빌드는 핫 다시 로드 테스트 결과를 일반 전체 빌드 테스트 결과로 바꿉니다.

알려진 문제

  • 다음 시나리오에서는 핫 리로드를 사용한 테스트 실행이 발생하지 않습니다:
    • 코드 검사
    • Live Unit Testing
    • 프로파일링
    • 디버깅
  • 읽을 수 없는 토큰이 존재하면 스택 추적을 읽을 수 없습니다. 이 문제는 여기에서 추적되고 있으며 .NET 7.0에서 수정될 예정입니다.
    • 이 경우에 권장되는 해결 방법은 프로젝트를 빌드하고 테스트를 다시 실행하는 것입니다.

여러분의 피드백은 소중합니다.

앞서 언급했듯이 이 실험적 기능을 완성하려면 사용자의 피드백이 필요합니다. 환경에 대한 제안이 있거나 문제가 발생한 경우 잠시 시간을 내어 문제를 보고해 주세요. 사용자의 피드백을 통해서만 중요한 문제를 해결하고 향후 의사 결정의 우선 순위를 결정할 수 있습니다.

연락하려면 Visual Studio 피드백 메커니즘을 사용하세요.