Testloader(测试加载)和Fixture(测试夹具)的使用

  • Post author:
  • Post category:其他


TestLoader:

作用:与TestSuite 的作用是一样的,是对TestSuite 功能的补充,用来组装测试用例的

比如:如果Testcase 的代码文件有很多,(10 ,20,30 )

使用步骤:

1.导包

2.实例化测试加载对象并添加用例—>得到的是suite对象

3.实例化运行对象

4.运行对象执行套件对象

代码:

提示:在一个项目中 TestCase(测试用例)的代码,一般放在一个单独的目录 (case)

# 1、导包
import unittest

# 2、实例化加载对象并添加用例
# 格式:unittest.TestLoader( ).discover('用例所在的路径','用例的代码文件名')
# 注意:用例所在的路径,建议使用相对路径,用例的代码文件名可以使用*(任意多个任意字符)通配符
loader = unittest.TestLoader().discover('./case', 'test_login.py')
# 3、实例化运行对象
runner = unittest.TextTestRunner()
# 4、执行
runner.run(loader)

Fixture(测试夹具)

概念:是一种代码结构,在某些特定的情况下,会自动执行

方法级别和类级别的前后方法根据需要选择,没有要求同时出现,可单独使用

方法级别

在每个测试方法(用例代码)执行前后都会自动调用的代码结构

setup():在每个方法执行之前都会自动执行pass

def setup(self):
    pass

teardown():在每个测试方法执行之前后会执行pass

def teardown(self):
      pass

类级别

在每个测试类中所有方法执行前后都会自动调用的结构。类级别的Fixture方法,是一个类方法

def setupClass(cls):在类中所有方法之前执行

@classmethod
def setupClass(cls):
    pass

def teardownClass(cls):在类中所有方法之后执行

@classmethod
def teardownClass(cls):
     pass

模块级别

在每个代码文件执行前后执行的代码结构,模块级别的需要写在类的外边直接定义函数即可

def setupModule() :代码文件之前执行

def setupModule() :
    pass

def teardownModule():代码文件之后执行

def teardownModule():
     pass

举例:

class TestLogin(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        print("类先执行这个方法,再执行下面的用例")

    def setUp(self) -> None:
        print("先执行这个方法再执行测试用例")

    def tearDown(self) -> None:
        print("先执行测试用例再执行方法")

    def test_lie(self):
        print("测试用例")

    @classmethod
    def tearDownClass(cls) -> None:
        print("类测试用例执行完了,最后执行这个方法")

结果:



版权声明:本文为blue_ttt原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。