터미널 또는 pty 상태의 스냅샷을 찍는 데 사용할 수 있는 도구가 있습니까? [복사]

터미널 또는 pty 상태의 스냅샷을 찍는 데 사용할 수 있는 도구가 있습니까? [복사]

이 질문을 중복으로 표시하지 마세요. 중복이 아닙니다. 감사해요. a, , \x1b[D("커서 반환"), , 의 순서를 고려하십시오 b. 이렇게 하면 출력만 생성됩니다 b.


ncurses 스타일 라이브러리나 이스케이프 시퀀스를 사용하는 기본 애플리케이션과 같은 TUI 애플리케이션(예: less, vim)을 만들어보고 싶습니다.

나는 tmux 사용자로서 tmux가 capture-pane테스트 검증을 위한 "스크린샷" 기능의 형태로 사용될 수 있는 테스트 프레임워크의 좋은 기반이 될 수 있는 매우 유용한 기능을 제공한다는 것을 발견했습니다. 예를 들어 출력의 정확성을 수동으로 테스트하는 대신 넓은 범위의 tmux에서 실행하고 특정 창 크기에 대해 테스트 중인 프로그램을 실행하는 테스트를 구축한 다음 출력을 엄격한 문자열 비교로 비교할 수 있습니다. . 실제 요구 사항을 충족하기 위해 창 크기 범위 및 렌더링 상태 확인.

어쨌든 요점은 이것이 터미널 바이트 스트림을 터미널 화면 버퍼로 "분석"하는 유일한 방법인 것 같다는 것입니다. tmux는 매우 강력하고 다재다능하지만 이러한 특정 기능을 제공하는 도구가 있었으면 좋겠습니다. 오늘 pty가 무엇인지, 어떻게 작동하는지에 대해 더 많이 읽었기 때문입니다.여기, 시스템의 이러한 측면은 실제로 터미널 에뮬레이터의 범위에 속하는 것 같습니다. 반면 tmux와 같은 것은 GUI 응용 프로그램 없이 이 작업을 수행해야 한다는 점에서 다소 독특합니다(이는 장점입니다).

답변1

확실히 tmux는 버퍼의 상태를 생성할 수 있을 뿐만 아니라 모든 ANSI 색상과 스타일을 적용할 수 있기 때문에 유일한 게임입니다. 이는 모든 것이 작동하는지 확인하는 테스트 목적에 매우 유용합니다. 괜찮은. 실제로 tmux는 진행 중인 세션에 연결될 때 내부적으로 이 작업을 수행할 수 있어야 하며 새로 연결된 터미널 세션을 통해 과거 기록을 제공해야 하는 것은 어리석은 일입니다. 그래서 그것이 해결되어서 기쁘다 capture-pane.

관련 정보