Allure 自定义标签不会出现在最终报告中(pytest、allure)

问题描述 投票:0回答:1
  • python 3.12.2

  • 诱惑-pytest:2.13.5

  • allure-python-commons:2.13.5

  • py测试:8.2.2

  • 诱惑CLI:2.30.0

前提

Allure 文档说我可以添加标签。

import allure from allure_commons.types 
import LabelType 

@allure.label(LabelType.LANGUAGE, "python") 
@allure.label(LabelType.FRAMEWORK, "pytest") 
def test_authentication():

“它可以是来自 LabelType 类或任何其他字符串的常量。”

所以我认为这应该有效:

import allure 

@allure.label("any other string", "python") 
@allure.label("another any other string", "pytest") 
def test_authentication():

问题

尽管,当我通过 @allure.label( 添加我的

任何其他字符串
自定义标签时,它不会显示在报告中。

例如:

# root_dir/test.py  

import allure  

@allure.label('Area', 'someArea') 
@allure.label('Component', 'someComponent') 
@allure.label('Relevance', 'someVersion') 
def test_smth()

然后我运行测试;指向

reports/
保存报告;然后在浏览器中打开它:

pytest -v -s --alluredir reports

allure serve reports

报告中没有我的自定义标签的痕迹。并且报告的 HTML 中没有相应的标签或元素或其他内容。

与此同时,当我在 Allure 报告目录

*-result.json
中打开
reports/
时,我会在那里看到我的自定义标签:

"labels": [{"name": "Area", "value": "someArea"}, {"name": "Component", "value": "someComponent"}, {"name": "Relevance", "value": "someVersion"}

顺便说一句

文档中的示例未出现在最终报告中:

@allure.label(LabelType.LANGUAGE, "python") 

最终报告中实际显示的内容:

@allure.title() 
@allure.description() 
@allure.severity() 
@allure.testcase() 
@allure.story() 
@allure.featur() 
@allure.tag 

我还尝试过什么:

开辟一个单独的地方来存放我的标签

# root_dir/custom_allure_labels.py  

import allure 
 
def area(value):     
    return allure.label('Area', value)  

def component(value):     
    return allure.label('Component', value)  

def relevance(value):     
    return allure.label('Relevance', value)  
# root_dir/test.py 

import allure  
from custom_allure_labels import area, component, relevance  
 
@area('someArea')  
@component('someComponent')  
@relevance('someVersion')  
def test_smth()

没有结果。

都一样+添加属性

# root_dir/allure.properties    

allure.label.Area=Area  
allure.label.Component=Component  
allure.label.Relevance=Relevance
# root_dir/custom_allure_labels.py  

import allure 
from allure_commons.types import LabelType  

def area(value):     
    allure.label(LabelType.CUSTOM_LABEL_1, value)     
        return allure.label('Area', value)  
def component(value):     
    allure.label(LabelType.CUSTOM_LABEL_2, value)     
        return allure.label('Component', value)  
def relevance(value):     
    allure.label(LabelType.CUSTOM_LABEL_3, value)     
        return allure.label('Relevance', value) 
# root_dir/test.py  

import allure 
from custom_allure_labels import area, component, relevance  

@area('someArea') 
@component('someComponent') 
@relevance('someVersion') 
def test_smth()

没有结果。

类似但添加了 `decorator` 函数

# root_dir/custom_allure_labels.py  

import allure  

def custom_allure_labels(area, component, relevance):     
    def decorator(func):         
        allure.label('Area', area)(func)         
        allure.label('Component', component)(func)         
        allure.label('Relevance', relevance)(func)         
        return func     
    return decorator
# root_dir/test.py  

import allure 
from custom_allure_labels import area, component, relevance  

@custom_allure_labels(         
    area='someArea',         
    component='someComponent',         
    relevance='someVersion',     
    ) 
def test_smth()

问题

我想做的事情有什么问题吗?

有没有办法将自定义属性添加到`LabelType`中?

python testing automated-tests pytest allure
1个回答
0
投票

自定义标签在 Allure 报告中不可见,但可以映射到 Allure Testops 中的自定义字段,并用于高级过滤和分组。

您可以在此处找到在 Allure 报告中生效的标签列表:https://github.com/orgs/allure-framework/discussions/2059#discussioncomment-6616266

© www.soinside.com 2019 - 2024. All rights reserved.