我正在使用python进行测试自动化,我们有一个测试管理工具。我们试图做的是在此管理工具中更新测试用例,以便测试失败的人可以很快地看到它。
但是问题是,我无法弄清楚测试何时通过或失败。所以我的测试看起来像这样:
@decorator(testId = 5, comment = "Test fails or not")
def test(self):
# assert
assert True == False
不,我想用装饰器解决它,但是没有解决。因此,该测试将失败,现在我需要将其在线推送到测试管理系统。有人知道如何执行此操作吗?我的装饰代码如下:
def decorator(*args, **kwargs):
print("Inside decorator")
def inner(func):
print("testId: ", kwargs["testId"])
if "comment" in kwargs.keys():
print("comment: ", kwargs["comment"])
try:
pass
except AssertionError as assertionError:
print("Assertion fails: " + str(assertionError))
raise
except Exception as ex:
print("Something else failed")
print("exception: " + str(ex))
raise
finally:
print("ending")
return func
return inner
答案 0 :(得分:0)
搜索了一段时间后,我做了一个更好的装饰器。看起来像这样:
import functools
def exception(function):
@functools.wraps(function)
def wrapper(*args, **kwargs):
try:
return function(*args, **kwargs)
except:
print("error in: " + function.__name__)
raise
return wrapper
@exception
def zero_divide():
1 / 1
a = AnObjectTHatDOESNTEXIST()
print("start")
zero_divide()
print("end")