Jest를 실행 중이고 출력은 다음과 같습니다. 테스트용으로 한 줄을 인쇄한 다음 지우고 다른 줄을 인쇄합니다.
그러나 루프를 사용하여 테스트를 실행하는 경우( 를 사용하여 expect
) 전체 테스트 목록을 볼 수 없습니다. (선택기 등).
나는 또한 다음을 시도했습니다.
jest foo.js &> result.txt
그러나 Joke는 터미널 유형이 아니라고 판단하여 더 이상 해당 행을 출력하지 않는 것 같습니다.
나는 또한 옵션을 조사했지만 jest
효과가 있는 것을 찾지 못했습니다.
그래서 나는 해킹이 다음과 같을 수 있다고 생각했습니다. 터미널이 이러한 ANSI 이스케이프 시퀀스(줄 지우기 등)를 지원하지 않으면 출력은 한 줄씩 이루어져야 합니다.
그것을 할 수 있는 방법이 있나요? 환경은 macOS Sonoma의 터미널입니다.
답변1
터미널에 그러한 기능을 지원하지 않는다고 알려주십시오.
TERM=vanilla jest foo.js
또는 스크립트 시작 부분에 환경 변수를 설정합니다(기억 export
: 모든 하위 프로세스는 이 환경 변수를 사용해야 함). 바라보다https://invisible-island.net/ncurses/terminfo.ti.html다양한 터미널에 대한 설명.
좋은 프로그램은 터미널을 확인하고 터미널이 지원하는 경우에만 이스케이프 코드를 추가합니다. 불행히도(이 stackoverflow 사이트의 많은 답변에서 볼 수 있듯이) 많은 프로그래머는 게으르고 터미널 기능을 쿼리하지 않고 어쨌든 이스케이프 코드를 보냅니다.
참고: ANSI 시퀀스를 제거할 수 있는 유틸리티도 있지만 이름이 기억나지 않습니다.