## ADDED Requirements ### Requirement: E2E测试命令执行正常 E2E测试必须能够正确执行命令行工具,不应出现模块未找到的错误。 #### Scenario: convert命令执行成功 - **WHEN** 运行 `uv run yaml2pptx.py convert input.yaml output.pptx` - **THEN** 命令返回码为0,输出文件被创建 #### Scenario: check命令执行成功 - **WHEN** 运行 `uv run yaml2pptx.py check input.yaml` - **THEN** 命令返回码为0(验证通过)或1(验证失败),但不出现模块错误 ### Requirement: 测试Fixture完整定义 所有测试使用的fixture必须在conftest.py中正确定义。 #### Scenario: fixture依赖可用 - **WHEN** 测试引用sample_template fixture - **THEN** fixture被正确解析并返回临时模板目录路径 ### Requirement: Mock对象配置正确 Mock对象在测试中必须正确配置返回值。 #### Scenario: 表格渲染Mock配置 - **WHEN** 测试渲染表格元素时使用Mock对象 - **THEN** Mock对象支持列宽设置的订阅操作 ### Requirement: 模板变量替换功能正常 模板系统必须正确替换所有变量,包括字体属性中的变量。 #### Scenario: 字体属性变量替换 - **WHEN** 模板包含 `{variable_name}` 在font属性中 - **THEN** 变量被正确替换为实际值(需要用引号包裹) ### Requirement: 验证结果格式化输出正确 验证结果必须正确格式化所有类型的消息。 #### Scenario: 提示信息显示 - **WHEN** 验证结果包含INFO级别的问题 - **THEN** 输出中应包含"个提示"文字 ### Requirement: HTML渲染器特殊字符转义 HTML渲染器必须正确转义特殊HTML字符。 #### Scenario: &字符转义 - **WHEN** 文本内容包含 `&` 字符 - **THEN** 输出中应包含 `&` ### Requirement: Presentation尺寸值验证 Presentation类必须验证尺寸值的类型,防止YAML解析错误。 #### Scenario: 非字符串尺寸值 - **WHEN** YAML中 `size: 16:9`(无引号) - **THEN** 抛出明确的错误信息 ### Requirement: PPTX验证器兼容性 PPTX文件验证器必须兼容不同版本的python-pptx。 #### Scenario: 文本框检测 - **WHEN** 验证PPTX中的文本元素 - **THEN** 通过检查text_frame属性来判断是否是文本框