zoukankan      html  css  js  c++  java
  • pytest常用选项

    1. 测试代码的命名规则:
    测试文件应该用 test_ 开头或者 _test 结尾
    测试函数、测试方法应该以 test_ 开头
    测试类应该以 Test 开头

    2. 如果想指定运行py文件中的某一个,可以使用:在指定文件名之后添加::test_name

    3. 运行pytest
    pytest
    pytest 文件名称

    4. pytest -v 进入详细日志模式

    5. --collect-only选项
    该选项用来显示给定配置下会有哪些测试用例被运行,例如你接手了一个项目,不知道里面有多少测试用例,但又不想直接运行后查看结果(毕竟可能浪费很多时间,而且可能破坏测试环境),就可以使用此选项


    6. -k选项
    该选项用来使用表达式指定特定的测试用例运行,例如你想选择名字里包含add的测试用例,可以这么写pytest -k add,如果想选择名字里包含one或者two的用例,可以这么写pytest -k "one or two" (注意,这里需要添加双引号),下面让咱们结合上一个--collect-only选项来看看实际效果:
    pytest -k "quick"
    pytest -k "quick" --collect-only


    7. -m选项
    该选项用于标记测试并分组,一遍快速选中并运行。例如你有两个名字完全不同的用例,但是关于同个功能模块的,你想让他们一起运行,那么上面提到的-k选项就无能为力了,这时候就需要使用标记。当然,需要你事先在用例上做标记,然后才能去找被你标记过的用例嘛。
    那么,怎么标记用例呢?python里有个叫装饰器的东西,就是@开头的,如果不大清楚具体原理,建议百度下。咱们要做的,只是在用例前面加上 @pytest.mark.标记名 就行了
    例如:
    pytest test_three.py -m "demo" 指定运行带mark标记的函数

    拓展:还有更强大的呢,比如你同个用例想分到多个组里,那就可以对其添加多个标记,然后使用的时候,还可以用 -m "mark1 or mark2"这种形式来同时选中具有mark1标记和mark2标记的所有测试用例


    8. -x选项
    该选项用于断言失败或者触发了异常时立即停止整个会话。正常情况下,pytest会依次执行每条用例,即使某条失败,也会标记失败后继续进行,而添加此选项后则会立即停止,这样可以方便咱们进行调试。下面比较下添加和不添加的效果:

    pytest test_three.py -m "demo" -x


    9. --maxfail=num选项
    -x选项的特点是,遇到失败或者异常就会停止,但是假如你知道有个用例肯定失败,并不想马上停止,那么可以用--maxfail选项来指定失败几次之后才停止,-x的选项其实就是--maxfail=1。由于之前的用例只有2个失败,如果设置为1,那么就和-x效果一样,如果设置为2,那就和没设置一样,咱们试试看吧:


    10. -s选项
    该选项允许测试运行时输出任何符合标准的输出流信息,例如代码里面的print。例如咱们修改下test_one.py里的用例,加上print一些信息

    -v选项
    这个是老朋友了,就是啰嗦模式,啥信息都显示,看得眼花缭乱。

    -q选项
    和-v选项刚好相反,这个是安静模式,只显示关键的信息(例如失败原因)

    11. --lf选项
    该选项用于重新运行之前失败的用例,如果没有任何失败,则全部重跑。例如上次运行的4个用例中,有2个失败了,那么使用--lf(--last-failed)选项,则当前只会运行上次失败的那两个用例。

    12. --ff选项
    即先运行失败再运行其他(--failed-first)。如下图,原本正常的顺序应该是test_one.py第一个运行,使用--ff选项后,先运行了2个失败的用例(即使同个文件内的,也是只先运行失败的那个)

    13. -l选项
    该选项用来失败时显示局部变量(--showlocals),主要是用来调试。那让咱们给用例增加点局部变量来看看效果好了。

    14. --tb选项
    该选项用于失败时输出哪些信息,有short、line、no三种模式可以选择。
    short 仅显示assert的一行以及系统判定内容
    line 使用一行输出所有错误信息
    no 啥都不显示
    --tb=short
    --tb=line
    --tb=no
    简单地说,
    no告诉你失败了;
    line告诉你哪里失败了;
    short告诉你为啥失败了。
    除了这些,还有--duration选项用来显示哪个阶段占用时间最长,--version显示版本,--h显示帮助等

  • 相关阅读:
    T2038 香甜的黄油 codevs
    缓冲区溢出分析第08课:MS06-040漏洞研究——动态调试
    缓冲区溢出分析第07课:MS06-040漏洞研究——静态分析
    Android最新敲诈者病毒分析及解锁(11月版)
    Android敲诈者病毒“安卓性能激活”分析(2015年9月版)
    Android最新敲诈者病毒分析及解锁
    APK程序Dex文件无源码调试方法讨论
    一个DDOS木马后门病毒的分析
    IDA动态调试Android的DEX文件
    一枚Android "短信小偷" 病毒的分析
  • 原文地址:https://www.cnblogs.com/wenshu/p/12258053.html
Copyright © 2011-2022 走看看