1.寫一個簡單的代碼,以便後續對此進行單元測試web
# @File : Math_Method.py
# @Software: PyCharm
class MathMethod:
def __init__(self,a,b):
self.a=a
self.b=b
def add(self):
return self.a+self.b
def multi(self):
return self*self.b
2。使用unittest框架進行單元測試,執行全部測試用例
# -*- coding: utf-8 -*-
# @Time : 2020/4/11 22:35
# @Author : Jacqueline
# @File : Practice_UnitTest.py
# @Software: PyCharm
#接口測試的本質:測試類的函數,類裏主要封裝函數和屬性,測試別人寫好的代碼,經過數據驅動測試
#單元測試的本質:測試函數 經過代碼測試
#單元測試的框架 unittest+API(接口),pytest+web
#功能測試步驟-unittest能夠實現以下步驟
#1.寫用例 Testcase
#2.執行用例 2個方法 1:TestSuite 存儲用例 2.TestLoader 找用例-》 加載用例 -》存儲到TestSuite
#3.對比實際結果 指望結果 斷定用例是否經過 斷言
#4.出具測試報告TextTestRunner
import unittest
from API_AUTO.UnitTest.Math_Method import MathMethod
#編寫3個測試用例以下:1+1/0+1/-1+(-2)
#寫一個測試類,對D:\PycharmProject\Test\API_AUTO\UnitTest\Math_Method.py這個文件裏模塊的類進行單元測試
class TestMathMethod(unittest.TestCase): #繼承unittest裏的testcase,用來編寫測試用例
#編寫測試用例
#1.一個函數就是一個測試用例,不能傳參,只有self關鍵字
#2.全部用例都是test開頭,按照ascii碼執行順序
def test_add_two_positive(self): # test method names begin with 'test'
res=MathMethod(1,1).add() #建立實例
print("1+1的結果是: ",res)
def test_add_two_zero(self): # test method names begin with 'test'
res=MathMethod(0,0).add() #建立實例
print("0+0的結果是: ",res)
def test_add_two_negative(self): # test method names begin with 'test'
res=MathMethod(-1,-2).add() #建立實例
print("-1+(-2)的結果是: ",res)
class TestMultiMethod(unittest.TestCase): #繼承unittest裏的testcase,用來編寫測試用例
#編寫測試用例
#1.一個函數就是一個測試用例,不能傳參,只有self關鍵字
#2.全部用例都是test開頭,按照ascii碼執行順序
def test_multi_two_positive(self): # test method names begin with 'test'
res=MathMethod(1,1).add() #建立實例
print("1*1的結果是: ",res)
def test_multi_two_zero(self): # test method names begin with 'test'
res=MathMethod(0,0).add() #建立實例
print("0*0的結果是: ",res)
def test_multi_two_negative(self): # test method names begin with 'test'
res=MathMethod(-1,-2).add() #建立實例
print("-1*(-2)的結果是: ",res)
if __name__ == '__main__':
unittest.main()
3.想執行部分測試用例,選擇性執行須要的測試用例,而不是執行所有測試用例
# -*- coding: utf-8 -*-
# @Time : 2020/4/11 23:22
# @Author : Jacqueline
# @File : Practice_SkipTestCase.py
# @Software: PyCharm
import unittest
from API_AUTO.UnitTest.Practice_UnitTest import TestMathMethod
suite=unittest.TestSuite()#存儲用例
#way1 只執行一條測試用例,少許測試用例適用
suite.addTest(TestMathMethod('test_add_two_zero'))
suite.addTest(TestMathMethod('test_add_two_positive'))
#way2 TestLoader,使用批量成千上百條測試用例的執行
loader=unittest.TestLoader()#建立一個加載器
#suite.addTest(loader.loadTestsFromTestCase(TestMathMethod))from API_AUTO.UnitTest import Practice_UnitTestsuite.addTest(loader.loadTestsFromModule(Practice_UnitTest))#執行runner=unittest.TextTestRunner()runner.run(suite)