콘텐츠로 이동

기계 번역

이 페이지는 AI에 의해 자동 번역되었으며 오류가 있을 수 있습니다. 모호한 점이 있으면 간체 중국어 원문을 기준으로 하십시오.

간체 중국어 원문 · 번역 문제 신고

테스트 fixtures

tests/fixtures/테스트 스위트에 결정론적이고 API 구조를 가진 모의 데이터를 제공합니다. 입력은 대표적인 스레드 및 워크플로 구조를 시뮬레이션하며, 렌더링 결과물은 golden 스냅샷 형태로 저장소에 커밋됩니다.

1. 출처 계약

현재 커밋된 fixture 내용은 모두 모의 데이터입니다:

  • 새 fixture를 추가하거나 업데이트할 때는 모의 데이터를 구성해야 합니다. web_archive/, 사용자 계정 데이터, 실시간 API 응답 또는 개인 아카이브를 가져와서 채워서는 안 됩니다.
  • 커밋된 파일의 이름, 신원, 식별자, prompt, answer, 워크플로 페이로드, 경로 및 URL은 테스트용 플레이스홀더입니다.
  • JSON은 파서, 렌더러, 상태 및 관계 동작을 다루기 위해 프로덕션 응답 및 아카이브 스키마를 모방합니다.
  • 저장소는 플레이스홀더에서 개인 식별자로의 역매핑을 커밋하지 않습니다.

전체 모드 fixture간소화 시나리오 fixture는 적용 범위와 입력 형태를 설명하며, 데이터 출처를 설명하는 것이 아닙니다. 둘 다 모의 데이터입니다.

2. 디렉터리 계약

각 fixture 디렉터리에는 원래 응답 형태를 가진 모의 입력이 포함되며, 스냅샷 비교가 필요할 때는 golden/ 트리도 포함됩니다:

경로 역할
raw_entries.json 프로덕션 응답 형태와 일치하는 모의 스레드 entries
raw_blocks.json 모의 workflow blocks; 해당 모드에 block 응답이 없으면 누락
thread.json 모의 아카이브 스레드 메타데이터
golden/conversation.md + golden/turns/turn_*.md 모의 입력에서 생성되어 바이트 단위로 비교되는 결과물

현재 결정론적 규칙은 다음과 같습니다:

  • 플레이스홀더 계정 alice / bob, 예시 신원, 플레이스홀더 BOT 공간 및 고정 read_write_token;
  • 5cbeef00 태그가 있는 uuid5 파생 식별자로, 모의 레코드 간 의도된 상호 참조를 유지;
  • 5crub0 태그가 있는 고정 길이 모의 toolu_ 식별자;
  • 일반적인 prompt, 제목, 워크플로 텍스트 및 파일 경로;
  • 쿼리 문자열이 제거된 서명된 URL.

이러한 규칙은 우발적으로 혼입된 환경 관련 잔여물을 쉽게 발견할 수 있게 합니다. 모의 식별자가 온라인 객체에서 비롯되었음을 의미하지는 않습니다.

3. 인벤토리

3.1 전체 모드 fixtures

지원되는 각 모드에는 완전한 모의 세션이 있습니다:

Fixture 적용 범위
search_demo search, 단일 라운드; R 코드 펜스 및 인라인 코드
deep_research_demo deep research; 종단 간 수학 구분자 변환
computer_demo computer, 7라운드 워크플로 렌더링
council_demo council 모델 위원회 렌더링 및 대규모 중첩 페이로드
study_demo study 모드 렌더링

3.2 간소화 시나리오 fixtures

이들은 특정 회귀에 필요한 entries와 관계만 유지하는 고정 모의 페이로드입니다. "간소화"는 실제 스레드에서 추출했음을 의미하지 않습니다.

Fixture 적용 범위
scenario_computer_answer_fallback 일반 FINAL 경로를 사용할 수 없을 때 패턴화된 workflow block에서 답변 복구
scenario_subagent_fallback background 일치 항목이 없을 때 하위 에이전트 제목 및 자체 항목 렌더링
scenario_user_response WORKFLOW_ITEM_USER_RESPONSE Q&A 렌더링
scenario_subagent_stub 앵커 없는 subagent-result 스텁의 10초 연관 윈도우
scenario_workflow_item_nested 중첩된 WORKFLOW_ITEM_WORKFLOW 접힘 블록 렌더링
scenario_limit_interrupted 크레딧 중단, 기여 폭포, 부록 배치 및 중복 렌더링 금지
scenario_canceled WORKFLOW_CANCELED 주석

4. Fixtures 유지 관리

tests/scrub_fixtures.py는 모의 데이터를 정규화하고, 프로덕션 오프라인 렌더러를 통해 golden을 재생성하며, 잔여물 게이트를 실행합니다:

uv run python tests/scrub_fixtures.py
uv run python tests/scrub_fixtures.py --check
  • 재생성——각 fixture는 임시 디렉터리에서 pplx_export.commands.rerender_cmd.rerender를 통해 렌더링되며, 라운드 수가 일치하지 않으면 중단됩니다.
  • 결정론적 정규화——플레이스홀더 텍스트, UUID, toolu_ 값, 토큰 및 서명된 URL이 멱등적으로 정규화됩니다.
  • 안전한 입력은 데이터 출처가 아님——선택적 로컬 tests/scrub_pairs.local.json 및 사용자 수준 계정 구성은 대체 및 잔여물 검사만 확장합니다. fixture 시나리오를 구성하는 입력으로 사용해서는 안 됩니다.
  • 검사 모드——--check는 파일을 쓰지 않습니다. 구성된 잔여물, 로컬 절대 경로 또는 서명된 URL 자격 증명이 발견되면 실패합니다.

모의 입력 JSON 또는 렌더러 출력을 수정한 후 유지 관리 도구를 실행하고, fixture 변경 사항을 커밋하기 전에 --check를 실행하세요.

5. Golden 스냅샷의 권위 경계

커밋된 모의 JSON은 입력 진실 공급원입니다. Golden Markdown은 파생물입니다: 현재 프로덕션 재렌더링 경로를 통해 모의 JSON에서 재생성된 후 바이트 수준 회귀 비교를 위해 커밋됩니다. 독립적인 진실 공급원으로 수동 유지 관리해서는 안 됩니다.

6. 참고