欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pytest-运行模式(二)

程序员文章站 2022-03-11 16:17:25
...

pytest 的多种运行模式,让测试和调试变得得心应手,运行pytest时会找到当前目录及其子目录中的所有test_*.py*_test.py格式的文件以及以test开头的方法或者class, 不然就会提示找不到可以运行的case了。

  1. 运行后生成测试报告
# 安装pytest-html
pip install -U pytest-html

# 运行模式:
pytest tests.py --html=report.html
  1. 运行指定的case

当写了较多的case时,每次没必要都运行一遍,可以指定case

class TestClassOne(object):
    def test_one(self):
        x = "this"
        assert 't'in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, 'check')


class TestClassTwo(object):
    def test_one(self):
        x = "iphone"
        assert 'p'in x

    def test_two(self):
        x = "apple"
        assert hasattr(x, 'check')

模式1. 运行tests.py文件中的所有case:

pytest tests.py

模式2. 运行tests.py文件中的TestClassOne这个class下的连个cases:

pytest tests.py::TestClassOne

模式3. 运行tests.py文件中的TestClassOne这个class下的test_one:

pytest tests.py::TestClassOne::test_one

注意: 定义class时,需要以Test开头,不然是不会运行该class的

  1. 多进程运行cases

当cases很多时, 运行时间也会比较长,要缩短运行时间,可以使用多进程进行运行

# 安装pytest-xdist:
pip install -U pytest-xdist

# 运行模式
pytest tests.py -n  NUM

其中 NUM 是进程数

  1. 重试运行cases

在做接口测试时,有时会遇到503或者短时的网络波动,导致case运行失败,而这并非是我们期望的结果,此时就可以使用通过重试运行cases的方式来解决

# 安装pytest-rerunfailuers
pip install -U pytest-rerunfailuers

# 运行模式
pytest tests.py --reruns NUM

其中 NUM 是进程数

  1. 显示print内容

在运行测试脚本时,为了调试或打印一些内容,我们会在代码中加一些print内容,但是在运行pytest时,这些内容不会显示出来。如果带上-s, 就可以显示了

运行模式:

pytest tests.py -s

另外,pytest 的多种运行模式可以叠加执行的,比如:运行四个进程,又想打印print内容,可以用:

pytest tests.py -s -n 4

总结自简书

相关标签: pytest