测试开发全栈之Python自动化 unittest 执行测试用例的几种方式

程序员一凡 · 2020年12月14日 · 837 次阅读

前言
在我们实际工作当中,我们经常会用到 unittest 框架来执行用例,进行冒烟测试。

unittest 执行测试用例的几种方式
通过 unittest.main() 来执行测试用例的方式:

###import unittest

class UCTestCase(unittest.TestCase):
def setUp(self):
# 测试前需执行的操作
.....
def tearDown(self):
# 测试用例执行完后所需执行的操作

# 测试用例 1
def test1(self):
# 具体的测试脚本

# 测试用例 2
def test2(self):
# 具体的测试脚本

if name == "main":
unittest.main()

通过 testsuit 来执行测试用例的方式:

###
import unittest

执行测试的类

class UCTestCase(unittest.TestCase):
def setUp(self):
# 测试前需执行的操作

def tearDown(self):
# 测试用例执行完后所需执行的操作

# 测试用例 1
def test1(self):
# 具体的测试脚本

# 测试用例 2
def test2(self):
# 具体的测试脚本

if name == "main":
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(UCTestCase("test1"))
suite.addTest(UCTestCase("test2"))
# 执行测试
runner = unittest.TextTestRunner()
runner.run(suite)

通过 testLoader 方式:

###
import unittest

class TestCase1(unittest.TestCase):
def testCase1(self):
print("a")
def testCase2(self):
print("b")

class TestCase2(unittest.TestCase):
def testCase1(self):
print("a1")
def testCase2(self):
print("b1")

if name == "main":
# 此用法可以同时测试多个类
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
suite = unittest.TestSuite([suite1, suite2])

通过 discover 方式加载某路径下的所有测试用例

###
import unittest

discover 可以一次调用多个脚本

test_dir 被测试脚本的路径

pattern 脚本名称匹配规则

test_dir = "./test_case"
discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")

匹配 test_case 目录下所有以 test 开头的 py 文件,执行这些 py 文件下的所有测试用例

if name == "main":
runner=unittest.TextTestRunner()
runner.run(discover)

愿你我相遇,皆有所获!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册