>>> dir(unittest) #全部的屬性和方法 ['BaseTestSuite', 'FunctionTestCase', 'SkipTest', 'TestCase', 'TestLoader',
'TestProgram', 'TestResult', 'TestSuite', 'TextTestResult', 'TextTestRunner', '_TextTestResult',
'__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__',
'__path__', '__spec__', '__unittest', 'case', 'defaultTestLoader', 'expectedFailure', 'findTestCases', 'getTestCaseNames',
'installHandler', 'load_tests', 'loader', 'main', 'makeSuite', 'registerResult', 'removeHandler', 'removeResult', 'result',
'runner', 'signals', 'skip', 'skipIf', 'skipUnless', 'suite', 'util']
例如:
import unittest
class Test_baidu(unittest.TestCase): #全部的測試類都須要繼承這個TestCase類,
def setUp(self): #重寫了TestCase類的方法 每一個用例開始執行以前都會執行setUp
print('開始執行用例了:-----------')
def tearDown(self):#重寫了TestCase類的方法 每一個用例結束以後都會執行tearDown
print('執行完畢:------------')
def test_case1(self):
print('test_case1111111111')
self.assertEqual(1,1) #判斷a,b相等嗎
self.assertIs(1,1)#判斷a是b嗎
self.assertIn(1,[1,2])#判斷a在b裏嗎
l = [1,2]
self.assertIsInstance(l,list)#判斷a是b的實例化對象嗎
self.assertTrue(1)#判斷a是true
self.assertFalse(0)
@unittest.skip('不執行222') #skip跳過執行,
def test_case2(self):
print('test_case222222')
if __name__ =='__main__':
unittest.main(verbosity=2) #這可像py文件同樣直接運行
把多個用例寫在一個目錄下面,直接用discover()方法找到多個test_case一次性執行:
unittest.TextTextRunner():unittest框架的TextTextRunner()類,經過該類下面的run()方法來運行suite所組裝的測試用例,入參爲suite測試套件。html
unittest.defaultTestLoader(): defaultTestLoader()類,經過該類下面的discover()方法可自動更具測試目錄start_dir匹配查找測試用例文件(test*.py),並將查找到的測試用例組裝到測試套件,所以能夠直接經過run()方法執行discover。框架
import unittest,osc_path = os.getcwd()path = os.path.join(c_path,'unittest_html')print(path)discover = unittest.defaultTestLoader.discover(path,pattern='test_*.py') #批量的找到path路徑下面的全部的test_*py的用例print(discover)runner = unittest.TextTestRunner()#經過該類下面的run()方法來運行suite所組裝的測試用例runner.run(discover)