다음을 통해 공유


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

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

지원되는 항목은 무엇인가요?

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

핫 리로드를 통해 테스트 실행 활성화

테스트>옵션을> 선택하여 이 기능을 사용하도록 설정합니다"(실험적) .NET 6 이상을 대상으로 하는 C# 및 VB 테스트 프로젝트에 대해 핫 다시 로드된 테스트 실행을 사용하도록 설정합니다." Visual Studio 테스트 옵션 페이지에 있는 '핫 리로딩 테스트 실행 활성화' 버튼의 스크린샷입니다. 이 옵션을 선택하면 지원되는 시나리오에 대해 테스트 실행에서 핫 리로딩을 사용합니다.

실험적인 이유는 무엇인가요?

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

작동 방식

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

내부적으로 새로 릴리스된 핫 다시 로드 환경에 있는 것과 동일한 편집 및 계속 인프라를 사용하여 런타임에 C#/VB 코드를 편집 하여 변경 내용을 확인합니다. 이러한 이유로 "무례한 편집"이 없을 때만 핫 리로드합니다. 무례한 편집이 있는 경우, 테스트를 실행하기 전에 테스트를 빌드하는 방식으로 대체됩니다. 지원되는 편집에 대한 자세한 내용은 편집 및 계속 설명서를 참조하세요.

테스트 실행 속도가 얼마나 빠를까요?

이 기능을 통해 얼마나 많은 시간을 절약할 수 있는지 예측할 때 많은 변수가 재생됩니다. 다음은 그 예입니다.

  • 프로젝트 빌드에 걸리는 시간.
  • 어떤 종류의 편집이 이루어졌는지.
  • 파일이 편집된 위치의 규모입니다.
  • 편집이 이루어진 위치(프로젝트가 리프 프로젝트인지 아닌지 여부).

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

비고

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

알려진 문제

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

피드백이 중요합니다.

앞에서 설명한 것처럼 이 실험적 기능을 완료하려면 피드백이 필요합니다. 환경이 어떻게 되어야 하는지에 대한 제안이 있거나 문제가 발생하는 경우 잠시 시간을 내어 문제를 보고해 주세요. 사용자 의견으로만 중요한 문제가 해결되고 향후 의사 결정의 우선 순위가 입력에 따라 결정되도록 할 수 있습니다.

Microsoft에 도달하려면 Visual Studio 피드백 메커니즘을 사용하세요.