"""测试所有 PPTX Readers 的一致性。""" import pytest from scripts.readers.pptx import ( docling, markitdown, native_xml, python_pptx, unstructured, ) class TestPptxReadersConsistency: """验证所有 PPTX Readers 解析同一文件时核心文字内容一致。""" def test_all_readers_parse_same_content(self, temp_pptx): """测试所有 Readers 解析同一文件时核心内容一致。""" file_path = temp_pptx(slides=[ ("测试标题", "这是测试幻灯片内容。"), ("第二页", "第二页的内容。") ]) parsers = [ ("docling", docling.parse), ("markitdown", markitdown.parse), ("native_xml", native_xml.parse), ("python_pptx", python_pptx.parse), ("unstructured", unstructured.parse), ] successful_results = [] for name, parser in parsers: content, error = parser(file_path) if content is not None and content.strip(): successful_results.append((name, content)) assert len(successful_results) > 0, "没有任何 reader 成功解析文件" core_texts = ["测试标题", "幻灯片", "内容", "第二页"] for name, content in successful_results: assert any(text in content for text in core_texts), \ f"{name} 解析结果不包含核心内容"