Pytest L1-命名、断言、setup/teardown

一、Pytest 格式要求
文件名 test_开头或者_test结尾
类 Test开头
方法/函数 test_开头
注意:测试类中不可以添加__init__构造函数

二、Pycharm配置pytest为默认执行器
file->Settings->tools/python Integrated Tools->Testing:ddefult test runner选择pytest,点击ok

三、测试用例断言
目的:为了表示与验证软件开发者预期的结果,当程序执行到断言的位置时,对应的断言应该为真,若断言不为真时,程序会中止执行,并给出错误信息

流程:
image

格式:
assert <表达式>
assert <表达式> <描述>

def test_str():
    assert "abc" in "abcde"

import sys
def test_plat():
    assert ('linux' in sys.platform),"这是一段提示信息"

四、测试框架结构:setup/teardown
setup_module/teardown_module 全局模块级(模块级别,只调用一次
setup_function/teardowm_function 函数级,只对函数用例生效,每个函数前后都会执行一次(不在类中)
setup_class/teardown_class 类级,只在类中前后运行一次
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 TestDemo1:
    # 类前后分别执行setup和teardown
    def setup_class(self):
        print("class setup class")
    def teardown_class(self):
        print("class teardown")
    #每个类方法前后分别执行setup、teardown
    def setup(self):
        print(" setup")
    def teardown(self):
        print("teardown")

    def testdemo1(self):
        print("test demo1")
    def test_demo2(self):
        print("test demo2")
# class TestDemo1:
#     # 类前后分别执行setup和teardown
#     def setup_class(self):
#         print("class setup class")
#     def teardown_class(self):
#         print("class teardown")
#     #每个类方法前后分别执行setup、teardown
#     def setup_method(self):
#         print(" setup method")
#     def teardown_method(self):
#         print("teardown method")
# 
#     def testdemo1(self):
#         print("test demo1")
#     def test_demo2(self):
#         print("test demo2")