Java教程

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

本文主要是介绍【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/
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
这篇关于【unittest】编写并运行测试用例方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!