gpt4 book ai didi

python - 我可以在 pytest 中执行多个断言吗?

转载 作者:太空狗 更新时间:2023-10-29 19:34:37 24 4
gpt4 key购买 nike

我正在使用 pytest 进行 selenium 测试,想知道是否可以在单个测试中使用多个断言?

我调用了一个比较多个值的函数,我希望测试报告所有不匹配的值。我遇到的问题是,一旦发现不匹配的值,使用“assert”或“pytest.fail”就会停止测试。

有没有办法让测试继续运行并报告所有不匹配的值?

最佳答案

正如 Jon Clements 评论的那样,您可以填写一个错误消息列表,然后断言该列表为空,并在断言为假时显示每条消息。

具体来说,可能是这样的:

def test_something(self):
errors = []

# replace assertions by conditions
if not condition_1:
errors.append("an error message")
if not condition_2:
errors.append("an other error message")

# assert no error message has been registered, else print messages
assert not errors, "errors occured:\n{}".format("\n".join(errors))

原始断言被 if 语句替换,这些语句将消息附加到 errors 列表以防条件不满足。然后断言 errors 列表为空(空列表为 False)并使断言消息包含 errors 列表中的每条消息。


您还可以按照 nose documentation 中的说明制作测试生成器.我没有找到任何描述它的 pytest 文档,但我知道 pytest 处理这个问题的方式与 nose 完全相同。

关于python - 我可以在 pytest 中执行多个断言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39896716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com