pytest 报告,pytest报错

  pytest 报告,pytest报错

  在编写测试用例的过程中,我们有时会遇到这样的情况【已知由于某种原因,某些场景有问题,或者功能暂时没有实现】。然后在测试用例执行的时候,我们知道测试用例会失败,也就是预期的失败。这时我们可以使用@pytest.mark.xfail decorator将测试用例标记为预期失败函数。

  修复一个bug的时候,优先级比较低,暂时不用修复。此时,在自动化用例运行的过程中,这个用例的执行结果肯定会失败,所以我们可以用@ pytest.mark.xfaille decorator标记这个用例,用例的执行结果会被标记为xfailed而不是failed。

  用xfail标记所需的测试用例失败;这个测试用例将被运行,但是它将被列在测试报告的[预期失败(XFAIL)]或[意外成功(XPASS)]部分中。

  例子如下:

  导入pytest

  @ pytest.mark.xfaill (reason=此用例返回的实际结果与预期不一致)

  定义测试_001():

  断言1==2

  @ pytest.mark.xfaill (reason=该用例的实际返回结果与预期一致)

  定义测试_002():

  断言8==8

  定义测试_003():

  断言6==6运行结果:

  当然,测试用例的预期失败也可以通过测试用例中的xfail标签来强制识别:【详见pytest的skip标签】

  def测试函数():

  如果不是valid_config():

  Py.xfaill(失败的配置(但应该工作))pytest.mark.xfaill decorator使用方法将测试函数标记为失败的函数。

  方法:

  pytest.mark.xfail(条件=无,原因=无,引发=无,运行=真,严格=假)

  通用参数:

  1.条件:必须为预期的失败条件传递一个参数。默认值是None,这意味着只有满足条件时才会标记用例;

  2.reason:失败原因,必选参数,默认值为None,表示可以指定一个原因字符串来说明标记用例的原因;

  3.strict关键字参数,默认值为False。当strict=False时,如果用例执行失败,结果会被标记为XFAIL,表示满足预期失败;如果用例被成功执行,结果被标记为XPASS,这意味着它没有像预期的那样成功;

  当strict=True时,如果用例执行成功,结果会被标记为失败;

  4.引发关键字参数,默认值为None。

  可以被指定为一个异常类或多个异常类的元组表明我们期望用例报告指定的异常;

  如果用例的失败不是由预期的异常引起的,pytest会将测试结果标记为失败;

  5.run关键字参数,默认值为True:当run=False时,pytest不会再执行测试用例,直接将结果标记为XFAIL;用法:

  函数decorator的用法:@ pytest.mark.xfail (condition,reason= xx )

  函数体中的用法:pytest.xfail (condition,reason= xx )执行方法pytest默认不显示带有xfail执行结果的测试用例的详细信息,但是我们可以通过pytest命令行参数-r选项来显示;

  测试用例的执行结果通常用一个字母表示一个类型,具体规则如下:(f)失败,(e)出错,(s)跳过,(x)失败,(x)通过,(p)断言,(p)用输出断言,(a) ll除通过(p/p)。

  因此,pytest -rxX方法可以用XFAIL和XPASS的结果显示用例的详细信息。

  示例#test_xfail.py

  导入pytest

  类TestMyCode:

  @ pytest . mark . xfaill(reason= bug待修复[OPRAUPL-7166])

  def test_xfail_001(自身):

  断言1==2运行结果:

  当这个bug被修复后,用例被执行,但是因为我们标记了@ pytest.mark.xfaill,所以执行结果被统计为xpassed。

  此时,测试代码如下:

  导入pytest

  类TestMyCode:

  @ pytest . mark . xfaill(reason= bug已修复[OPRAUPL-7166])

  def test_xfail_002(自身):

  断言1==1运行结果:

  这将明确地提醒我们,当业务逻辑发生变化或bug被修复时,我们的测试用例可能也需要调整,应该引起注意。

  期待陌生,拥抱惊喜。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: