터미널 테스트 리포터는 터미널(콘솔)에 대한 상태 및 진행률 보고의 기본 제공 구현입니다. 이는 핵심 Microsoft.Testing.Platform (MTP)의 일부로, 추가적인 NuGet 패키지가 필요하지 않습니다.
출력 모드
MTP는 다음과 같은 출력 모드를 지원합니다.
Minimal는 실패한 결과 블록을 보고합니다.Normal보고서가 실패하고 결과 블록을 건너뛰었다. 배너, 경고 메시지 및 실행 요약도 포함됩니다.
Detailed는 모든 결과 블록을 보고합니다.
Minimal 는 MTP 2.4 미리 보기에서 사용할 수 있습니다.
미국 국가 표준 협회 (ANSI)
내부적으로 ANSI 이스케이프 코드를 처리하는 터미널 기능을 자동으로 검색하는 2개의 출력 포맷터가 있습니다.
- ANSI 포맷터는 터미널이 이스케이프 코드를 렌더링할 수 있을 때 사용됩니다.
- 논 ANSI 포맷터는 터미널이 이스케이프 코드를 처리할 수 없거나,
--no-ansi가 사용되거나, 출력이 리디렉션될 때 사용됩니다.
기본값은 기능을 자동으로 검색하는 것입니다.
발전
진행률 표시기가 터미널에 기록됩니다. 진행률 표시기는 통과된 테스트 수, 실패한 테스트 및 건너뛴 테스트 수와 테스트된 어셈블리의 이름, 대상 프레임워크 및 아키텍처를 보여 줍니다.
진행률 표시줄은 선택한 모드에 따라 작성됩니다.
- 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, Normal 및 Detailed입니다. 기본값은 Normal입니다.
Minimal 에는 MTP 2.4 미리 보기가 필요합니다. |
--show-test-results <OUTCOME> |
2.4.0 | 결과별로 결과 블록을 선택합니다. 사용 passed, failed, skipped, all또는 none.
failed 오류, 시간 제한 및 취소도 포함됩니다. |
--show-stdout |
2.2.1 | 테스트의 캡처된 표준 출력을 표시할 시기를 결정합니다. 유효한 값은 All, Failed 및 None입니다. 기본값은 All입니다. |
--show-stderr |
2.2.1 | 테스트의 캡처된 오류 출력을 표시할 시기를 결정합니다. 유효한 값은 All, Failed 및 None입니다. 기본값은 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
.NET