一、测试套件:
1.方式一:unittest.main()
import unittest
# 定义测试类,父类为unittest.TestCase
class TestDemo(unittest.TestCase):
# 每个测试方法运行前执行
def setUp(self) -> None:
print("setUp")
# 每个测试方法运行后执行
def tearDown(self) -> None:
print("teardown")
# 所有的测试方法都要以test为开头
def test_01(self):
print("test01")
def test_02(self):
print("test02")
def test_03(self):
print("test03")
if __name__ == '__main__':
unittest.main(verbosity=2)
执行结果
2.方式二:unittest.TestSuite()
import unittest
# 定义测试类,父类为unittest.TestCase
class TestDemo(unittest.TestCase):
# 每个测试方法运行前执行
def setUp(self) -> None:
print("setUp")
# 每个测试方法运行后执行
def tearDown(self) -> None:
print("teardown")
# 所有的测试方法都要以test为开头
def test_01(self):
print("test01")
def test_02(self):
print("test02")
def test_03(self):
print("test03)
if __name__ == '__main__':
# unittest.main(verbosity=2)
# 构造测试集,实例化测试套件。
suite = unittest.TestSuite()
# 执行顺序为安装加载顺序:先执行test_case2,再执行test_case1
suite.addTest(TestDemo("test_02"))
suite.addTest(TestDemo("test_01"))
# 执行测试用例,实例化TextTestRunner类
runner = unittest.TextTestRunner(verbosity=2)
# 使用run()方法运行测试套件(即运行测试套件中的所有用例)
runner.run(suite)
执行结果:
3.方式三:unittest.defaultTestLoader()
import unittest
# 定义测试类,父类为unittest.TestCase
class TestDemo(unittest.TestCase):
# 每个测试方法运行前执行
def setUp(self) -> None:
print("setUp")
# 每个测试方法运行后执行
def tearDown(self) -> None:
print("teardown")
# 所有的测试方法都要以test为开头
def test_01(self):
print("test01")
def test_02(self):
print("test02")
def test_03(self):
print("test03)
if __name__ == '__main__':
test_dir = "./"
# 构造测试集,使用defaultTestLoader的discover方法查找测试用例文件。
discover = unittest.defaultTestLoader.discover(test_dir, pattern='pattern='demo.py')
# 执行测试用例,实例化TextTestRunner类。
runner = unittest.TextTestRunner(verbosity=2)
# 使用run()方法运行测试套件(即运行测试套件中的所有用例)
runner.run(discover)
执行结果:
二、结果输出到文件
import unittest
class TestCan(unittest.TestCase):
def test_01(self):
print("hello world1")
def test_02(self):
print("hello world2")
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(TestCan("test_01"))
suite.addTest(TestCan("test_02"))
#执行测试,将测试结果输入到res.txt文件中
with open("res.txt", "a", encoding="utf-8") as file:
runner = unittest.TextTestRunner(stream=file, verbosity=2)
runner.run(suite)
写入结果的文件