pytest 3个简单案例

第一个

‘‘‘第一种实现‘‘‘
class TestMy:
    def fun1(self):
        self.d = u2.connect()

    # 捕获连接异常
    def test_fun1(self):
        with pytest.raises(RuntimeError) as e:
            self.fun1()
        exec_msg = e.value.args[0]     # 外部运行,直接运行-输出的是本文件的路径,运行+参数输出的是参数
        assert exec_msg == Can\‘t find any android device/emulator     # 错误提示需与指定异常报错一致
        print(connected!)

第二个

‘‘‘第二种实现‘‘‘
def fun1():
    d = u2.connect()


class TestMy:
    # 捕获连接异常
    def test_fun1(self):
        with pytest.raises(RuntimeError) as e:
            fun1()
        exec_msg = e.value.args[0]     # 外部运行,直接运行-输出的是本文件的路径,运行+参数输出的是参数
        assert exec_msg == Can\‘t find any android device/emulator     # 错误提示需与指定异常报错一致
        print(unconnected!)

第三个

 pytest的作用域:

‘‘‘
function: 函数级,每个测试函数都会执行一次固件;
class: 类级别,每个测试类执行一次,所有方法都可以使用;
module: 模块级,每个模块执行一次,模块内函数和方法都可使用;
session: 会话级,一次测试只执行一次,所有被找到的函数和方法都可用。
setup:用例级,每个用例前去执行一次
teardown:用例级,每个用例前去执行一次
‘‘‘
"""
编写pytest测试用例,规则

测试文件以test_开头(以_test结尾也可以)
测试类以Test开头,并且不能带有 init 方法
测试函数以test_开头
断言使用基本的assert即可

"""
‘‘‘第三种实现‘‘‘
class My(object):

    # def __init__(self):
    #     self.d = u2.connect()

    def fun1(self):
        self.d = u2.connect()
        self.d.app_start(com.huya.nftv)


class TestMy(My):
    def setup_class(self):
        self.d = u2.connect()

    def teardown_class(self):
        print(结束)
    # 捕获连接异常
    def test_fun1(self):
        with pytest.raises(RuntimeError) as e:
            My.fun1(self)
        exec_msg = e.value.args[0]
        assert exec_msg == Can\‘t find any android device/emulator
        print(unconnected!)

 

pytest 3个简单案例

上一篇:AntD 组件总结


下一篇:配置Json