【unittest】编写并运行测试用例方法

前言:以教为学,授予他人知识也是学习的过程

工具:pycharm

注:小细节,用pycharm顶部选项中【run】->【run】运行指定文件,直接点击运行本文件可能不是所需文件

用例范围:1.单条测试用例

        2.测试类下的测试用例

           3.模块下的测试用例

方式一:用unittest.mian()方法运行文件中所有测试用例

import unittest
class testCase03(unittest.TestCase):
def setUp(self) -> None:
pass

def tearDown(self) -> None:
pass

def test_ccc(self):
print('ccc')

def test_aaa(self):
print('aaa')

def test_ddd(self):
print('ddd')

def test_bbb(self):
print('bbb')

if __name__ == "__main__":
unittest.main()

 方式二:用addTest()指定类下的测试用例

import unittest
class testCase03(unittest.TestCase):
def setUp(self) -> None:
pass

def tearDown(self) -> None:
pass

def test_ccc(self):
print('ccc')

def test_aaa(self):
print('aaa')

if __name__=="__main__":
suite=unittest.TestSuite()
suite.addTest(testCase03('test_ccc'))
suite.addTest(testCase03('test_aaa'))
unittest.main(defaultTest='suite')

 方式三:用unittest.makeSuite()运行指定测试类

import unittest
class testCase01(unittest.TestCase):
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass

def test_case_01_01(self):
print('test_case_01_01')

def test_case_01_02(self):
print('test_case_01_02')

class testCase02(unittest.TestCase):
def setUp(self) -> None:
pass

def tearDown(self) -> None:
pass

def test_case_02_01(self):
print('test_case_01_01')

def test_case_02_02(self):
print('test_case_01_02')
if __name__=='__main__':
  #testCase01是指定的测试类,注意套件suite加引号
  suite=unittest.makeSuite(testCase01)
unittest.main(defaultTest='suite')


方式四:用unittest.TestLoader()执行指定模块、指定类、指定测试用例
import unittest
from class_02 import testCase06 #自导

class testCase01(unittest.TestCase):
def setUp(self) -> None:
pass

def tearDown(self) -> None:
pass

def test_case_01_01(self):
print('test_case_01_01')

def test_case_01_02(self):
print('test_case_01_02')

class testCase02(unittest.TestCase):
def setUp(self) -> None:
pass

def tearDown(self) -> None:
pass

def test_case_02_01(self):
print('test_case_01_01')

def test_case_02_02(self):
print('test_case_01_02')

if __name__=='__main__':
#1.加载整个测试类,testCase01是测试类
# suite01=unittest.TestLoader().loadTestsFromTestCase(testCase01)
# unittest.main(defaultTest='suite01')

#2.加载模板py文件里面的测试用例,需要手动导入testCase06模块,testCase06是一个自导的模块
# suite02=unittest.TestLoader().loadTestsFromModule(testCase06)
# unittest.main(defaultTest='suite02')

#使用字符串的方式加载
#3.1加载测试方法
# suite03=unittest.TestLoader().loadTestsFromName('testCase06.testCase01.test_case_01_01')
# unittest.main(defaultTest='suite03')
#3.2加载测试类
# suite03=unittest.TestLoader().loadTestsFromName('testCase06.testCase01')
# unittest.main(defaultTest='suite03')
#3.3加载模块
suite03=unittest.TestLoader().loadTestsFromName('testCase06')
unittest.main(defaultTest='suite03')

方式五:用discover()加载并执行指定路径下,指定格式的测试用例
 方法:discover(self, start_dir, pattern='test*.py', top_level_dir=None):
 start_dir:测试用例的路径
top_level_dir:测试模块的顶层目录,如果没有顶层目录,默认为None。
pattern:执行用例的格式


import unittest
import os
#测试用例路径
current_path=os.path.dirname(__file__)
case_path=os.path.join(current_path,'test_one')
discover=unittest.defaultTestLoader.discover(case_path,
pattern='test*.py',
top_level_dir=case_path)
mainSuite=unittest.TestSuite()
mainSuite.addTest(discover)
unittest.main(defaultTest='mainSuite')

作者:ahuaa
出处:https://www.cnblogs.com/ahuaa/
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
上一篇:ui自动化__unittest单元测试框架


下一篇:unittest框架基础