纠结的卷心菜 2023-07-04 23:08 采纳率: 0%
浏览 13

pytest + allure 怎么在测试报告中标记每一个步骤是passed还是failed

pytest + allure 怎么在测试报告中标记每一个步骤是passed还是failed ?

使用allure.step()方法来显示具体步骤的信息时,无论结果是什么都会显示绿色的勾,也就是passed。
我想在测试的每一步里判断是passed 还是 failed,并且能自定义输出的提示信息。
例如:
(x) 期望值应该是1, 实际值是0。

有办法实现吗?

  • 写回答

2条回答 默认 最新

  • 小杰911 2023-07-04 23:15
    关注

    参考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),并且你可以看到自定义的提示信息。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月4日