allure-framework / allure-framework/allure-python
Attachments doesnt works with pre-test fixtures
- 主要语言
- Python
- 星标
- 814
- 派生
- 260
- PR 合并指标
- 30 天内没有已合并 PR
描述
@pytest.fixture(autouse=True, scope='session')
def configuration(config):
> attach_json_to_report("Config", config)
test\conftest.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test\commons\utils\reporting_utils.py:9: in attach_json_to_report
allure.attach(name=name, body=json, attachment_type=allure.attachment_type.JSON)
.venv\lib\site-packages\allure_commons\_allure.py:164: in __call__
plugin_manager.hook.attach_data(body=body, name=name, attachment_type=attachment_type, extension=extension)
.venv\lib\site-packages\allure_pytest_bdd\pytest_bdd_listener.py:118: in attach_data
self.lifecycle.attach_data(uuid4(), body, name=name, attachment_type=attachment_type, extension=extension)
.venv\lib\site-packages\allure_commons\lifecycle.py:146: in attach_data
file_name = self._attach(uuid, name=name, attachment_type=attachment_type, extension=extension)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = , uuid = None, name = 'Config', attachment_type = , extension = 'json'
def _attach(self, uuid, name=None, attachment_type=None, extension=None):
mime_type = attachment_type
extension = extension if extension else 'attach'
if type(attachment_type) is AttachmentType:
extension = attachment_type.extension
mime_type = attachment_type.mime_type
file_name = ATTACHMENT_PATTERN.format(prefix=uuid, ext=extension)
attachment = Attachment(source=file_name, name=name, type=mime_type)
uuid = self._last_item_uuid(item_type=ExecutableItem)
> self._items[uuid].attachments.append(attachment)
E KeyError: None
.venv\lib\site-packages\allure_commons\lifecycle.py:137: KeyError
贡献指南
调研方向
首先重现 test/conftest.py 中作用域为 session 的 fixture,并检查 test/commons/utils/reporting_utils.py,尤其是 attach_json_to_report。沿着 allure_pytest_bdd 和 allure_commons lifecycle.py 的生命周期跟踪报告的失败。完成的标志是:当没有可执行 item 处于活动状态时,来自测试前 fixture 的附件不再引发 KeyError。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- testing
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100