持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
Pytest是一个易用,强大,灵活的功能测试框架,并且兼容了unittest和Nose的测试用例。 用例编写简单,断言方便,拥有全能的mark标记,强大的测试辅助函数fixture,执行控制灵活,含有丰富的插件,简单易懂。
1、编写用例
Pytest用例支持使用函数,或者类来编写用例
1.1 函数编写用例
使用函数来编写测试用例非常简单,直接在test开头的测试脚本中编写test开头的测试函数就可以了,在测试函数中来执行测试步骤
def test_add():
assert 1+1 ==2
def test_error():
assert 1+1 == 3
两个用例,一个通过,一个失败,在执行的时候,会显示通过,另一个会显示2!=3,用例失败。 注意:测试函数名必须要以test开头
1.2 类编写用例
类编写用例可以用来组织同一功能的测试用例,便于在用例之间共享一些方法和属性,可以通过继承快速完成一些配置,Pytest 的测试类不需要继承其他类。
class TestDemo():
def test_add(self):
assert 1 + 1 == 2
def test_error(self):
assert 1 + 1 == 3
注意:测试类名都要是Test开头,测试类不需要继承unittest.TestCase,测试类中不能有__init__方法。
1.3 用例断言
断言又称检查点,是检查期望结果和实际结果是否相符,断言是用例中不能少的一部分,如果没有断言,这条用例没有意义,一条用例可以包含多条断言。包含多条断言时,所有断言通过,此用例执行通过,如果有一条断言失败,后边的断言不会被执行。如果想全部执行,可以使用pytest-check插件。 pytest的断言使用的python自带的assert的断言,通过判断assert后面的表达式来判断该条断言是否通过。
assert 期望结果 == 实际结果 : 可以判断相等
assert 1==1
判断大小
assert 1 + 1 > 3
判断不相等
assert 1 + 1 != 3
assert 部分 in 整体 :可以判断包含关系,可以包含某个字符串,也可以是列表中的某一项。
assert 1 in [1,2,3]
assert 变量 is True /False或者None:判断真假或者无值。也可以结果not进行反判断。
assert 1+1==2 is True
注意:空列表,元组、字典、空字符串、0,‘0’,None等都被是为假值。相当于==False 而不是is False