Машинный перевод
Эта страница была автоматически переведена ИИ и может содержать ошибки. Если что-то неясно, обращайтесь к английскому источнику.
Архитектура тестирования¶
Тестовая система 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 Поток данных снимков¶
- Симулированная фикстура предоставляет
raw_entries.json, необязательныйraw_blocks.jsonиthread.json. tests/conftest.py::render_fixtureкопирует эти файлы вtmp_path.- Фикстура вызывает
commands.rerender_cmd.rerender, производственный путь автономной реконструкции. - Свежие файлы
conversation.mdиturns/turn_*.mdсравниваются побайтово с зафиксированными продуктамиgolden/.
Эталоны — это сгенерированные ожидания, а не независимый источник данных. Любое изменение рендерера, которое изменяет байты артефактов, делает набор снимков красным до тех пор, пока изменение не будет проверено и эталоны не будут намеренно перегенерированы.
1.3 Границы изоляции и доверия¶
- Происхождение фикстур — все зафиксированные входные данные фикстур являются симулированными данными. Они
не копируются из реальных учетных записей, реальных ответов API,
web_archive/или частных архивов. - Сетевая граница — тесты используют фиктивные и автономные пути; зафиксированные фикстуры не требуют учетных данных или доступа к сети.
- Граница конфигурации — автоматическая фикстура устанавливает конфигурацию учетной записи-заполнителя,
поэтому реальная
~/.configразработчика не влияет на результаты. - Граница файловой системы — поведение команд и миграции выполняется в
tmp_path; пользовательские архивы не являются целями тестирования. - Граница остатков —
tests/scrub_fixtures.py --checkотклоняет настроенные строки, специфичные для окружения, локальные абсолютные пути и учетные данные с подписанными URL-адресами без изменения файлов.
Вместе утверждения модулей, семантика компонентов, тесты состояния команд и побайтовые снимки защищают как локальную логику, так и сквозной контракт повторного рендеринга.