Перейти к содержанию

Машинный перевод

Эта страница была автоматически переведена ИИ и может содержать ошибки. Если что-то неясно, обращайтесь к английскому источнику.

Английский источник · Сообщить о проблеме перевода

Архитектура тестирования

Тестовая система pplx_export полностью автономна, использует проверенные симулированные данные и фиксирует снимки поведения рендерера. Эта страница описывает архитектуру и гарантии; текущий список модулей находится в разделе Тестирование, а детали фикстур — в разделе Тестовые фикстуры.

Раздел сохраняет нумерацию из обзора архитектуры.


1. Тестовая система

Запустите набор командой uv run pytest tests. Количество тестов сообщается из текущего запуска, а не рассматривается как архитектурная константа.

1.1 Уровни

Уровень Представительные модули Контракт
Чистое поведение модулей test_units.py, тесты учетных данных/cookie/конфигурации изолировать функции, классы, проверку и нормализацию с помощью симулированных входных данных
Семантика компонентов тесты прерываний, заглушек-рабочих процессов, вариантов ответов и отношений проверять взаимодействие между парсером, рендерером, состоянием и индексным кодом без доступа к сети
Поведение команд/состояния в автономном режиме тесты обратного заполнения, синхронизации удаления, инициализации и регрессий обзора выполнять командные пути с использованием временных каталогов и фиктивных транспортов
Снимки рендеринга test_render_snapshots.py передавать симулированный JSON в форме API через производственный путь повторного рендеринга и сравнивать все байты Markdown с зафиксированными эталонами

Идентификаторы обзора, такие как N, V3, V4 и V5, являются метаданными отслеживаемости на этих уровнях. Они не определяют отдельную архитектуру времени выполнения, и их связь с тестовыми модулями не обязательно взаимно однозначна.

1.2 Поток данных снимков

  1. Симулированная фикстура предоставляет raw_entries.json, необязательный raw_blocks.json и thread.json.
  2. tests/conftest.py::render_fixture копирует эти файлы в tmp_path.
  3. Фикстура вызывает commands.rerender_cmd.rerender, производственный путь автономной реконструкции.
  4. Свежие файлы conversation.md и turns/turn_*.md сравниваются побайтово с зафиксированными продуктами golden/.

Эталоны — это сгенерированные ожидания, а не независимый источник данных. Любое изменение рендерера, которое изменяет байты артефактов, делает набор снимков красным до тех пор, пока изменение не будет проверено и эталоны не будут намеренно перегенерированы.

1.3 Границы изоляции и доверия

  • Происхождение фикстур — все зафиксированные входные данные фикстур являются симулированными данными. Они не копируются из реальных учетных записей, реальных ответов API, web_archive/ или частных архивов.
  • Сетевая граница — тесты используют фиктивные и автономные пути; зафиксированные фикстуры не требуют учетных данных или доступа к сети.
  • Граница конфигурации — автоматическая фикстура устанавливает конфигурацию учетной записи-заполнителя, поэтому реальная ~/.config разработчика не влияет на результаты.
  • Граница файловой системы — поведение команд и миграции выполняется в tmp_path; пользовательские архивы не являются целями тестирования.
  • Граница остатковtests/scrub_fixtures.py --check отклоняет настроенные строки, специфичные для окружения, локальные абсолютные пути и учетные данные с подписанными URL-адресами без изменения файлов.

Вместе утверждения модулей, семантика компонентов, тесты состояния команд и побайтовые снимки защищают как локальную логику, так и сквозной контракт повторного рендеринга.