pytest命名规则
类型	              规则
文件	           test_开头 或者 _test 结尾
类	          Test 开头
方法/函数	   test_开头
注意:测试类中不可以添加__init__构造函数
pytest测试用例结构
用例结构有三部分组成:用例名称、用例步骤、用例断言
测试用例实例:
def test_XXX(self):
    # 测试步骤1
    # 测试步骤2
    # 断言  实际结果 对比 预期结果
    assert ActualResult == ExpectedResult
类级别的用例示例
class TestXXX:
    def setup(self):
        # 资源准备
        pass
    def teardown(self):
        # 资源销毁
        pass
    def test_XXX(self):
        # 测试步骤1
        # 测试步骤2
        # 断言  实际结果 对比 预期结果
        assert ActualResult == ExpectedResult
pytest用例断言
断言的用法:assert<表达式>  例如:assert ;
assert<表达式><描述>  例如:assert  : ;
pytest测试框架结构(setup/teardown)
测试装置介绍
类型	                                                      规则
setup_module/teardown_module	全局模块级
setup_class/teardown_class	        类级,只在类中前后运行一次
setup_function/teardown_function	函数级,在类外
setup_method/teardown_method	方法级,类中的每个方法执行前后
setup/teardown	                       在类中,运行在调用方法的前后(重点)
代码示例:
def setup_module():
    print("资源准备:setup module")
def teardown_module():
    print("资源准备:teardown module")
def test_case1():
    print("case1")
def test_case2():
    print("case2")
def setup_function():
    print("资源准备:setup function")
def teardown_function():
    print("资源消毁:teardown function")
class TestDemo:
    #  执行类 前后分别执行setup_class  teardown_class
    def setup_class(self):
        print("TestDemo setup_class")
    def teardown_class(self):
        print("TestDemo teardown_class")
    # 每个类里面的方法前后分别执行 setup, teardown
    def setup(self):
        print("TestDemo setup")
    def teardown(self):
        print("TestDemo teardown")
    def test_demo1(self):
        print("test demo1")
    def test_demo2(self):
        print("test demo2")
    def test_demo3(self):
        print("test demo3")
class TestDemo1:
    #  执行类 前后分别执行setup_class  teardown_class
    def setup_class(self):
        print("TestDemo setup_class")
    def teardown_class(self):
        print("TestDemo teardown_class")
    # 每个类里面的方法前后分别执行 setup, teardown
    def setup(self):
        print("TestDemo setup")
    def teardown(self):
        print("TestDemo teardown")
    def test_demo1(self):
        print("test demo1")
    def test_demo2(self):
        print("test demo2")
print(__name__)