TestCase 的幾個特殊方法:
setUp():測試方法之前運行,測試前的初始化;
tearDown():測試結束后運行,測試后的清理工作;
setUpClass():所以測試方法運行前運行 ,單元測試的前期准備,必須使用@classmethod 裝飾器進行修飾,setup()之前運行。整個測試只執行一次。
tearDownClass():所以測試方法執行結束后運行,單元測試的清理工作,必須使用@classmethod 裝飾器進行修飾,tearDown()之后運行,整個測試只執行一次。
1.加上測試集合可以批量運行同一個文件.py下的多個測試用例: Testsuit
if__name__ == '__main__' :
testCase1 = unittest.TestLoad().loadTestsFromTestCase(測試類名字1)
testCase2 = unittest.TestLoad().loadTestsFromTestCase(測試類名字2)
suit = unittest.Testsuit([testCase1,testCase2 ])
unittest.TextTestRunner(verbosity=2).run(suit)
備注:verbosity<=0;輸出的結果不提示執行成功的用例數目;
verbosity =1,輸出結果僅僅以點(.)表示執行成功的用例數目;
verbosity >=2,輸出每個用例的執行的詳細信息;
TestRunner.run() 返回一個TestResult實力對象,其存放着所有測試用例的執行過程的信息,可以通過dir()方法查看。
.TextTestRunner.run() 以文本的方式
2. 按照特定的順序執行測試用例
unittest.main()是以所有方法名的字符串ASCII排序執行,可以通過把測試用例添加到測試容器里執行;
if __name__ = '__main__'
suit =unittest.TestSuit()
suit .addTest(類名("方法"))
suit .addTest(Mytest("test_add"))
suit .addTest(Mytest("test_div"))
runner= unittest.TextTestRunner()
runner.run(suit)
3.忽略莫個測試方法 @unittest.skip()
在測試方法前之前 執行@unittest.skip(“Skipng”)無條件的忽略
@unittest.skip(A>8,"條件不滿足"):如果A >8,則忽略;
4.命令行模式執行測試用例
python -m unittest test_model1 test_model2
python -m unittest test_model.Testclass
python -m unittest test_model.Testclass.test_method
5.批量執行測試模塊
程序文件執行:
if __name__ = '__main__'
testsuit= unittest.TestLoad().discover('.') #加載當前目錄下的有效的測試模塊,“.”表示當前的目錄;文件名字以test 開頭
unittest.TextTestRunner(verbosity=2).run(testsuit)
命令行執行:
python -m unittest discover #目錄需要切換到存放腳本的目錄下;
discover 的一些參數:
-v :輸出詳細的信息;
-s:發現腳本的目錄;
-p:匹配莫個測試文件:python -m unittest discover -p "test * .py"
-t:工程的跟目錄下的搜索可以執行的測試腳本:例如:python -m unittest discover -t D:\wew\ewe
6.使用HTML TestRunner 生成HTML的測試報告
filename="d:\\ly.html"
fp =file(filename,'wb')
runner = HTML TestRunner .HTML TestRunner (stream=fp,title='Report title',description =‘Report_description’)
runner.run(suit)