【发布时间】:2020-12-20 13:03:14
【问题描述】:
现在我正在尝试找出记录 pytest 的最佳方式。我将为此使用诱惑力。记录每个包含的所有函数调用对我来说很重要:
- 函数参数
- 返回结果
- 时间戳(可选)
例如,我可以这样做:
import allure
@allure.step("The sum of two numbers")
def my_sum(a, b):
result = a + b
with allure.step("Result: {}".format(result)):
pass
return result
def test_sum():
observed = my_sum(1, 2)
assert observed == 3
日志:
对我来说,日志看起来不错,但代码看起来很难看。
第二种方式:
import allure
@allure.step("The sum of two numbers")
def my_sum(a, b):
result = a + b
allure.attach(str(result), 'Result', allure.attachment_type.TEXT)
return result
def test_sum():
observed = my_sum(1, 2)
assert observed == 3
日志:
Log 看起来有点差,不过还好。在这种情况下,将为每个附件创建单独的文件。恐怕会为大型日志创建大量附件,并且报告会运行缓慢。
此外,在这两种情况下,我都需要为每个函数添加大量代码 + 为我的代码添加时间戳看起来很难看。
请分享您使用 allure 进行日志记录的最佳实践。
附:在我使用 Robot Framework 之前,该框架中的上述代码如下所示:
*** Settings ***
*** Test Cases ***
Test Sum
${observed} My Sum 1 2
Should Be Equal As Strings ${observed} 3
*** Keywords ***
My Sum
[Arguments] ${a} ${b}
${result} Evaluate ${a} + ${b}
[Return] ${result}
日志:
理想情况下,我希望得到这样的日志。日志包含参数、返回的结果、函数内部的所有步骤和时间戳。
【问题讨论】: