Python中pytest框架一

282 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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