我正在尝试使用pytest生成自定义报告,并尝试在conftest.py文件中的全局夹具的终结器中,在发生故障的情况下访问pytest生成的断言消息。我能够访问测试的状态,但我无法收到错误消息。
我想以下列方式访问状态消息
@pytest.fixture(scope='function',autouse = True)
def logFunctionLevel(request):
start = int(time.time() * 1000)
def fin():
stop = int(time.time())
fo = open("/Users/mahesh.nayak/Desktop/logs/test1.log", "a")
fo.write(request.cls.__name__ + "." + request.function.__name__ + " " + str(start) + " " + str(stop) + "\n")
赞赏访问异常消息的任何帮助
由于
编辑:布鲁诺的回答确实有所帮助。添加以下行打印断言。
l = str(report.longrepr)
fo.write(l)
答案 0 :(得分:0)
我不确定您是否可以从灯具中访问异常消息,但您可以实现自定义pytest_runtest_logreport
挂钩(未经测试):
def pytest_runtest_logreport(report):
fo = open("/Users/mahesh.nayak/Desktop/logs/test1.log", "a")
fo.write('%s (duration: %s)\n' % (report.nodeid, report.duration))
fo.close()
希望有所帮助。
答案 1 :(得分:0)
要从固定装置访问断言消息,您可以按照此处的文档进行操作:
您要提出的问题是这样的:(未经测试的代码)
(?<=Betreft:)[^:]+(?=gagaga)
布鲁诺·奥利维拉(Bruno Oliveira)回答的主要区别在于,当夹具可以在测试结束时被称为只有一次。