pytest快速入门

465 阅读2分钟

最近项目要用pytest,研究了一下,把其中关键的点记录了下来,本身也不复杂,希望可以带大家快速入门

安装

运行这个命令就可以安装最新的pytest了:pip install -U pytest 如果你想安装指定的版本可以使用pip install -U pytest==version

使用

pytest兼容python内置的断言,也就是说你可以使用pytest直接运行包含断言的case. 当然,case必须满足以下条件:

  • case所在的类名必须以Test开头
  • case所在的文件名必须以test_开头
  • case的名称必须以test_

比如我有以下函数和对应的测试方法

def func1(self):
    return 1

def test_func1(self):
    assert self.func1()==1

如何运行这个case呢?

你可以直接点击case旁边的绿箭头,当然前提是你也在使用pycharm开发. 这种方式其实是让pycharm帮你跑,那怎么使用pytest跑呢?

很简单,定位到当前case所在目录,然后使用命令行运行pytest path\test_case.py.path既可以是绝对路径也可以是相对路径.比如 pytest test\common\test_util_pytest.py 这样就可以运行这个包含在在test_util\pytest.py里的所有case了.

如果这个测试文件里面包含太多的case,而我只想运行其中某个测试类中的某个case该怎么办呢?没关系pytest可以轻松应对: pytest path\test_file_name.py::TestClassName::test_method

  • path\test_file_name.py 测试文件的路径
  • TestClassName 测试文件中的测试类名.测试文件可以包含多个测试类
  • test_method 测试方法

例如:pytest test\common\test_util_pytest.py::TestUtil::test_func1,这行命令就可以只运行TestUtil类下面的test_func1方法

到目前为止你已经掌握了如何安装和使用pytest.当然,除了兼容python自带的断言外,pytest内部还包含丰富的标记(mark).使用这些标记可以更加灵活的控制case的运行.

在下一篇文章中,我将结合开发中经常遇到的场景来讲解标记的使用,掌握这些标记的用法可以帮助你编写更加灵活的单元测试来满足复杂的测试场景,进而帮助你实现更加健壮和稳定的程序