fixture介绍:对测试环境的初始化或销毁 可以在执行测试用例之前和之后调用指定的函数
- 控制级别:方法 类 模块(一个模块就是一个py文件)模块执行前后自动调用代码
方法级别
setUp和tearDown是有一条测试用例就执行一次在这个测试用例先后,所以下面这个有两个测试用例的数据就会执行两次 如下: setUp 第一个方法的测试用例 tearDown setUp 第二个方法的测试用例 tearDown
import unittest
def add(a, b):
return a+b
class testdemo(unittest.TestCase):
def setUp(self) -> None:
print("setup自动调用了")
def tearDown(self) -> None:
print("tearDown自动调用了")
def test_001(self):
print(add(1,2))
def test_002(self):
print(add(3,4))
import unittest
suite = unittest.TestLoader().discover("./", "my*.py")
runner = unittest.TextTestRunner()
runner.run(suite)
setup自动调用了
3
tearDown自动调用了
setup自动调用了
7
tearDown自动调用了
类级别
方法上面用@classmethod修饰 如下: setUpClass 一个类里面的所有测试方法 tearDownClass
import unittest
def add(a, b):
return a+b
class testdemo(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print("setUpClass自动调用了")
@classmethod
def tearDownClass(cls) -> None:
print("tearDownClass自动调用了")
def test_001(self):
print(add(1,2))
def test_002(self):
print(add(3,4))
import unittest
suite = unittest.TestLoader().discover("./", "my*.py")
runner = unittest.TextTestRunner()
runner.run(suite)
setUpClass自动调用了
3
7
tearDownClass自动调用了
模块级别
写的位置就写在import导入模块的下面就行 setUpModule自动调用了 一个py里面所有类的测试方法 tearDownModule自动调用了
import unittest
def setUpModule():
print("setUpModule自动调用了")
def tearDownModule():
print("tearDownModule自动调用了")
def add(a, b):
return a+b
class testdemo(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print("setUpClass自动调用了")
@classmethod
def tearDownClass(cls) -> None:
print("tearDownClass自动调用了")
def test_001(self):
print(add(1,2))
def test_002(self):
print(add(3,4))
class testdemo2(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print("setUpClass自动调用了")
@classmethod
def tearDownClass(cls) -> None:
print("tearDownClass自动调用了")
def test_001(self):
print(add(1,2))
def test_002(self):
print(add(3,4))
import unittest
suite = unittest.TestLoader().discover("./", "my*.py")
runner = unittest.TextTestRunner()
runner.run(suite)
|