前言
由于allure描述装饰器过于臃肿,不方便看起来不美观。所以决定将其封装成一个装饰器。
可以通过一个装饰器来封装 Allure 的装饰器,然后通过一个函数来实现一行代码注入需要的内容。例如:
import allure
import functools
def allure_decorator(title=None, description=None, severity=None, feature=None, story=None, issue=None, testcase=None, link=None, link_name=None):
def decorator(func):
@allure.title(title)
@allure.description(description)
@allure.severity(severity)
@allure.feature(feature)
@allure.story(story)
@allure.issue(issue)
@allure.testcase(testcase)
@allure.link(link, name=link_name)
@functools.wraps(func)
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
return result
return wrapper
return decorator
这里我们定义了一个 allure_decorator
装饰器,它接受多个参数,包括测试用例的标题、描述、功能模块、用户故事、关联缺陷和链接。这些参数可以为空,表示不需要注入对应的内容。
然后我们定义了一个内部装饰器 decorator
,它接受一个测试用例函数作为参数,并根据传入的参数,使用 Allure 的装饰器来注入对应的内容。
最后,我们可以通过一个函数来使用这个装饰器,例如:
@allure_decorator(title="测试用例1", description="这是一个测试用例", feature="登录功能", story="用户登录", issue="BUG-001") def test_login(): # 测试用例代码 pass