为什么要用unittest
生活随笔
收集整理的這篇文章主要介紹了
为什么要用unittest
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
'''為什么要使用單元測試框架?:
1.當(dāng)用例很多的時候用來組織用例和執(zhí)行用例
2.提供豐富的比較方法
3.提供豐富的日志'''import unittest
import HTMLTestRunner
import ospath = os.getcwd()
class Test_baidu(unittest.TestCase):def setUp(self):print('每一個開始了-----------')def test_1(self):print('test_1')self.assertEqual('1','2',msg='1!=2')def test_2(self):print('test_2')self.assertIsInstance([1,2],list)@unittest.skip #雖然這個方法不執(zhí)行,但是setup和teardown還要執(zhí)行的def test_3(self):print('test_3')self.assertIs('1','1')def tearDown(self):print('每一個結(jié)束了----------')@classmethoddef setUpClass(cls):print('大項(xiàng)目開是啦+++++++++')@classmethoddef tearDownClass(cls):print('大項(xiàng)目結(jié)束了+++++++++++')if __name__ == '__main__':suit = unittest.TestSuite()suit.addTest(Test_baidu('test_2')) #先把要執(zhí)行的順序,一個一個添加進(jìn)去 ---就是組織用例suit.addTest(Test_baidu('test_1'))suit.addTest(Test_baidu('test_3')) #有了skip的存在,加進(jìn)去也沒有用的runner = unittest.TextTestRunner() #把要執(zhí)行的案例添加到suit之后,用TextTestRunner()對象就可以運(yùn)行了 --組織好用例一鍵執(zhí)行# discover = unittest.TestLoader().discover(path)# runner1 = HTMLTestRunner.HTMLTestRunner()# runner1.run(discover)runner.run(suit)
上面是個 test*.py,,這個是main.py
'''當(dāng)用例很少的時候可以用suit一個一個的添加。 我們要把所有的用例都放在TEST_Case作用,里面有很多test*.py, 現(xiàn)在只有一個u1.py'''import unittest,os path = os.getcwd() print(path)discover = unittest.defaultTestLoader.discover(path,pattern='u*.py') #discover 返回的就是suit,所以Testloader就是把所有的案例加載到suit中。 runner = unittest.TextTestRunner() runner.run(discover)if __name__ == '__main__':unittest.main(verbosity=1)skip跳過測試用例
import unittest import HTMLTestRunner import ospath = os.getcwd() class Test_baidu(unittest.TestCase):def setUp(self):print('每一個開始了-----------')def test_1(self):print('test_1')self.assertEqual('1','2',msg='1!=2')def test_2(self):print('test_2')self.assertIsInstance([1,2],list)@unittest.skip #雖然這個方法不執(zhí)行,但是setup和teardown還要執(zhí)行的def test_3(self):print('test_3')self.assertIs('1','1')@unittest.skipIf(3<2,'當(dāng)條件為真時跳過測試,條件為假的時候執(zhí)行案例')def test_4(self):print('test_4')self.assertIs('1','1')@unittest.skipUnless(3<2,'當(dāng)條件為假的時候不執(zhí)行測試用例') #unless 除非def test_5(self):print('test_5')self.assertIs('1','1')def tearDown(self):print('每一個結(jié)束了----------')@classmethoddef setUpClass(cls):print('大項(xiàng)目開是啦+++++++++')@classmethoddef tearDownClass(cls):print('大項(xiàng)目結(jié)束了+++++++++++')if __name__ == '__main__':unittest.main(verbosity=2)生成html文件
import unittest,os from HTMLTestRunner import HTMLTestRunner path = os.getcwd() print(path)discover = unittest.defaultTestLoader.discover(path,pattern='u*.py') #discover 返回的就是suit,所以Testloader就是把所有的案例加載到suit中。 htmlpath = path+r'\report.html' print(htmlpath)f = open(htmlpath,'wb') runner = HTMLTestRunner(stream=f,verbosity=2,title='測試報(bào)告',description='這個是自己的的測試結(jié)果') #htmltestrunner 就是對testrunner的封裝 runner.run(discover) f.close()if __name__ == '__main__':unittest.main(verbosity=1)?
import time now = time.strftime("%Y-%m-%d %H-%M-%S") '''原來的html文件名是寫死的,重新生成就會覆蓋,所有讓每次名字不一樣加入時間(文件名好像不能用:一直報(bào)錯)''' htmlpath = 'F:/asus/auto_file/unittest_html'+'/'+now+'report.html'f = open(htmlpath,'wb')runner = HTMLTestRunner(stream=f,verbosity=2,title='測試報(bào)告',description='這個是自己的的測試結(jié)果') #htmltestrunner 就是對testrunner的封裝 runner.run(discover) f.close()?
轉(zhuǎn)載于:https://www.cnblogs.com/tarzen213/p/11108860.html
總結(jié)
以上是生活随笔為你收集整理的为什么要用unittest的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实验十四 课程学习总结
- 下一篇: laravel框架图片上传