unintest基础1

 

import unittest

class Testfunc(unittest.TestCase):
    def testfunc(self):
        print('testfunc1')

    def testfunc2(self):
        print('testfunc2')


suit = unittest.TestSuite()
suit.addTest(Testfunc('testfunc')) #单独增加测试用例
suit.addTest(unittest.makeSuite(Testfunc)) #把Testfunc下的测试用例都加到suit里面
unittest.TextTestRunner().run(suit)  #TextTestRunner创建一个运行器,运行测试用例

if __name__ == '__main__':
    unittest.main() #运行class类中的所有测试用例

1、unittest执行顺序,按函数的字母顺序执行

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

2、方法开头都是以test开头,才会被执行

3、unittest.main()与TextTestRunner().run()的区别

main()执行的是class中的所有方法,TextTestRunner执行的是自己给suit加入的测试用例

 4、setUp、tearDown的执行顺序

import unittest

class Testfunc(unittest.TestCase):
    def testfunc(self):
        print('testfunc1')

    def testfunc2(self):
        print('testfunc2')

    def setUp(self):
        print("每个用例执行前,运行")

    def tearDown(self):
        print("每个用例执行结束后,运行")

    @classmethod
    def setUpClass(cls):
        print("所有用例执行前,运行")

    @classmethod
    def tearDownClass(cls):
        print("所有用例执行结束后,运行")

if __name__ == '__main__':
    unittest.main() #运行class类中的所有测试用例

 

 

 


 

discover 可以把多个文件中的测试用例集中起来,并返回给测试套件

discover(start_dir,pattern='test*.py',top_level_dir=None)

start_dir :要测试的模块名或测试用例目录。
pattern='test*.py' :表示用例文件名的匹配原则。星号“*”表示任意多个字符。
top_level_dir=None:测试模块的顶层目录。如果没顶层目录(也就是说测试用例不是放在多级目录
中),默认为 None。


import unittest

def createsuit():
    testdir = "E:/lw/书籍/python/自动化/day1/"

    discover = unittest.defaultTestLoader.discover(testdir,pattern="test*.py",top_level_dir=None)
    print(discover)

    return discover

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(createsuit())


posted @ 2018-06-07 22:47  静心_心静  阅读(470)  评论(0编辑  收藏  举报