터미널 출력

터미널 테스트 리포터는 터미널(콘솔)에 대한 상태 및 진행률 보고의 기본 제공 구현입니다. 이는 핵심 Microsoft.Testing.Platform (MTP)의 일부로, 추가적인 NuGet 패키지가 필요하지 않습니다.

출력 모드

MTP는 다음과 같은 출력 모드를 지원합니다.

  • Minimal 는 실패한 결과 블록을 보고합니다.

  • Normal 보고서가 실패하고 결과 블록을 건너뛰었다. 배너, 경고 메시지 및 실행 요약도 포함됩니다. 실패한 테스트 1개와 요약 출력

  • Detailed 는 모든 결과 블록을 보고합니다. 1개 실패하고 1개 통과한 테스트 및 요약

Minimal 는 MTP 2.4 미리 보기에서 사용할 수 있습니다.

미국 국가 표준 협회 (ANSI)

내부적으로 ANSI 이스케이프 코드를 처리하는 터미널 기능을 자동으로 검색하는 2개의 출력 포맷터가 있습니다.

  • ANSI 포맷터는 터미널이 이스케이프 코드를 렌더링할 수 있을 때 사용됩니다.
  • 논 ANSI 포맷터는 터미널이 이스케이프 코드를 처리할 수 없거나, --no-ansi가 사용되거나, 출력이 리디렉션될 때 사용됩니다.

기본값은 기능을 자동으로 검색하는 것입니다.

발전

진행률 표시기가 터미널에 기록됩니다. 진행률 표시기는 통과된 테스트 수, 실패한 테스트 및 건너뛴 테스트 수와 테스트된 어셈블리의 이름, 대상 프레임워크 및 아키텍처를 보여 줍니다.

23개의 통과된 테스트, 0개의 실패한 테스트 및 0개의 건너뛴 테스트가 있는 진행률 표시줄

진행률 표시줄은 선택한 모드에 따라 작성됩니다.

  • ANSI, 진행률 표시줄은 화면 아래쪽에 달라붙어 애니메이션 효과를 주며 500ms마다 새로 고쳐집니다. 테스트 실행이 완료되면 진행률 표시줄이 숨겨집니다.
  • ANSI가 아닌 경우 진행률 표시줄은 3초마다 화면에 기록됩니다. 진행 상황이 출력에 반영되어 있습니다.

직접 콘솔 출력 및 진행률 다시 그리기

진행률 표시줄에 애니메이션 효과를 주려면 ANSI 진행률 렌더러가 터미널 커서를 제어하고 화면 아래쪽을 반복적으로 다시 그립니다. 테스트 프레임워크의 캡처 경로 밖에서 stdout 또는 stderr에 직접 기록된 텍스트는 이 다시 그리기 과정에서 덮어써지거나 제거될 수 있습니다. 예를 들어 어셈블리 수준 또는 세션 수준의 수명 주기 코드(예: Console.WriteLine 또는 Before(Assembly) 후크와 같은) 또는 확장에서의 Before(TestSession) 호출은 잠시 깜박였다가 진행률 표시줄이 새로 고쳐지면 사라질 수 있습니다.

이 동작은 캡처된 테스트별 표준 출력 및 표준 오류와는 다릅니다. 실행되는 동안 테스트가 기록하는 출력은 프레임워크에 의해 캡처되고 그에 따라 --show-stdout--show-stderr표시되므로 진행률 표시줄이 덮어쓰지 않습니다.

코드가 콘솔에 직접 출력해야 하고 그 출력이 계속 보이도록 해야 한다면 진행률 표시를 비활성화하세요(MTP 2.3.0 이상에서는 --progress off, 이전 버전에서는 --no-progress). 또는 ANSI(--ansi off MTP 2.3.0 이상 또는 --no-ansi 이전 버전에서)를 사용하지 않도록 설정하여 ANSI가 아닌 진행률 출력을 사용합니다. 이 출력은 현재 위치에서 다시 그리는 대신 새 줄을 추가하고 이전 직접 출력을 덮어쓰지 않습니다.

옵션

Option MTP 버전 Description
--no-progress 화면에 진행 상황을 표시하는 기능을 비활성화합니다. MTP 2.3.0부터는 더 이상 사용되지 않으며, 대신 --progress off를 사용합니다.
--progress 2.3.0 진행률이 표시되는지 여부를 제어합니다. 유효한 값은 auto(기본값), on(true, enable, 1도 허용), 그리고 off(false, disable, 0도 허용)입니다.
--no-ansi 화면에 ANSI 이스케이프 문자를 출력하지 않도록 설정합니다.
--ansi 2.3.0 ANSI 이스케이프 문자가 내보내지는지 여부를 제어합니다. 유효한 값은 auto(기본값), on(true, enable, 1도 허용), 그리고 off(false, disable, 0도 허용)입니다.
--output 테스트 결과의 출력 세부 정보를 지정합니다. 유효한 값은 Minimal, NormalDetailed입니다. 기본값은 Normal입니다. Minimal 에는 MTP 2.4 미리 보기가 필요합니다.
--show-test-results <OUTCOME> 2.4.0 결과별로 결과 블록을 선택합니다. 사용 passed, failed, skipped, all또는 none. failed 오류, 시간 제한 및 취소도 포함됩니다.
--show-stdout 2.2.1 테스트의 캡처된 표준 출력을 표시할 시기를 결정합니다. 유효한 값은 All, FailedNone입니다. 기본값은 All입니다.
--show-stderr 2.2.1 테스트의 캡처된 오류 출력을 표시할 시기를 결정합니다. 유효한 값은 All, FailedNone입니다. 기본값은 All입니다.
--show-flaky-tests 2.4.0 flaky: 재시도 후 통과하는 테스트에 대한 요약 및 Flaky 테스트 목록을 제어합니다. on 또는 off을 사용하세요; 기본값은 on입니다. MSTest [Retry]재시도 확장에 적용됩니다.
--show-slowest-tests 2.4.0 요약에서 요청된 가장 느린 테스트 수를 표시합니다. 다중 모듈 실행의 경우 MTP는 각 모듈에 대해 가장 느린 테스트를 보고합니다.

passed failed쉼표, skipped 공백 또는 반복 --show-test-results 옵션을 사용하여 결합합니다. none 또는 all를 다른 값과 결합하지 마세요. 명시적으로 지정한 --show-test-results 값은 옵션 순서와 관계없이 --output 프리셋을 재정의합니다. 필터는 결과 블록만 변경합니다. 진행률 및 요약 수는 변경되지 않은 상태로 유지됩니다.

메모

MTP 버전 열의 대시(—)는 플랫폼의 초기 릴리스 이후 사용할 수 있기 때문에 특정 버전에 연결되지 않은 핵심 옵션을 표시합니다.

메모

MTP 2.3.0부터 MTP가 LLM 또는 AI 도구 환경 내에서 실행되는 것을 감지하면 시작 배너를 표시하지 않으며 노이즈를 줄이기 위해 기본값 --show-stdout 을 변경합니다 --show-stderrAll.Failed