pytest + allure 怎么在测试报告中标记每一个步骤是passed还是failed ?
使用allure.step()方法来显示具体步骤的信息时,无论结果是什么都会显示绿色的勾,也就是passed。
我想在测试的每一步里判断是passed 还是 failed,并且能自定义输出的提示信息。
例如:
(x) 期望值应该是1, 实际值是0。
有办法实现吗?
pytest + allure 怎么在测试报告中标记每一个步骤是passed还是failed ?
使用allure.step()方法来显示具体步骤的信息时,无论结果是什么都会显示绿色的勾,也就是passed。
我想在测试的每一步里判断是passed 还是 failed,并且能自定义输出的提示信息。
例如:
(x) 期望值应该是1, 实际值是0。
有办法实现吗?
参考chatgpt
你可以使用pytest和allure结合来实现在测试报告中标记每个步骤是通过还是失败,并自定义输出提示信息。下面是一种可能的实现方式:
首先,确保你已经安装了pytest和allure插件。你可以使用以下命令进行安装:
pip install pytest
pip install allure-pytest
在你的测试代码中,使用@allure.step装饰器来标记每个步骤,并在每个步骤中判断是否通过。
下面是一个示例测试用例:
import allure
import pytest
@pytest.mark.parametrize("expected, actual", [(1, 1), (1, 0)])
def test_example(expected, actual):
with allure.step("检查值是否相等"):
if expected == actual:
allure.attach("期望值: {}, 实际值: {}".format(expected, actual), "检查结果")
else:
allure.attach("期望值: {}, 实际值: {}".format(expected, actual), "检查结果")
assert False, "期望值应该是{},实际值是{}".format(expected, actual)
在上述示例中,使用@allure.step装饰器定义了一个步骤,并在步骤内部根据条件判断是否通过。如果断言失败,则会抛出AssertionError并显示自定义的错误消息。
运行测试。你可以使用以下命令运行测试:
pytest --alluredir=allure-results
生成测试报告。运行上述命令后,会在当前目录下生成一个allure-results文件夹。使用以下命令生成测试报告:
allure serve allure-results
这将会启动一个本地的服务,并在浏览器中打开测试报告页面。
在生成的测试报告中,每个步骤都会显示为绿色的勾(passed)或红色的叉(failed),并且你可以看到自定义的提示信息。