unittest用法和report輸出

2022-06-23 16:27:11 字數 2115 閱讀 5543

import unittest,time,os

from lib import htmltestrunner_py3 #需要模板

def htmlreport():

reportdir=os.path.dirname(os.path.abspath('.'))+'\\report\\'

testdir=os.path.dirname(os.path.abspath('.'))+'\\test\\'

suite = unittest.defaulttestloader.discover(testdir, pattern='test*.py')

now=time.strftime('%y-%m-%d',time.localtime(time.time()))

reportname=reportdir + now + 'report.html'

with open(reportname, 'wb+') as f : #有中文字要用‘wb’

runner=htmltestrunner_py3.htmltestrunner(stream=f,title='測試報告',description=' report details ' , verbosity=2)

runner.run(suite)

def textreport():

reportdir=os.path.dirname(os.path.abspath('.'))+'\\report\\'

testdir=os.path.dirname(os.path.abspath('.'))+'\\test\\'

suite = unittest.defaulttestloader.discover(testdir, pattern='test*.py')

now=time.strftime('%y-%m-%d',time.localtime(time.time()))

reportname=reportdir + now + 'report.txt'

with open(reportname, 'a') as f:

runner = unittest.texttestrunner(stream=f, verbosity=2)

runner.run(suite)

testsuite組織用例

import unittest

test_dir = './'

discover = unittest.defaulttestloader.discover(test_dir,pattern='test*.py')

if __name__ == '__main__':

# 執行測試

runner = unittest.texttestrunner()

runner.run(discover)

discover()方法中引數的意思:

單元測試的重要概念

1. testcase

一個testcase的例項就是一個測試用例。一個測試用例要包括測試前準備環境的搭建(setup),執行測試**(run),以及測試後環境的還原(teardown)。一個測試用例是一個完整的測試單元,通過執行這個測試單元,可以對某一個功能進行驗證。

2. testsuite

對於某一個功能模組的驗證可能需要多個測試用例,多個測試用例集合在一起執行驗證某一個功能,這樣就是一個testsuite。通過addtest()方法將 testcase 載入到 testsuite()中。

3. testrunner

testrunner可以使用圖形介面、文字介面,或返回一個特殊的值等方式來表示測試執行的結果。texttestrunner提供的 run()方法來執行 test suite/test case。

4.testfixture

一個測試用例環境的搭建和銷燬就是一個 fixture。

還有不明白請檢視以下連結

對比 Unittest 和 Pytest

一 用例編寫規則 1,unittest提供了test cases test suites test fixtures test runner相關的類,讓測試更加明確 方便 可控。使用unittest編寫用例,必須遵守以下規則 1 測試檔案必須先import unittest 2 測試類必須繼承uni...

unittest和pytest的區別

一 用例編寫規則 1 unittest提供了test cases test suites test fixtures test runner相關的類 讓測試更加明確 方便 可控。使用unittest編寫用例 必須遵守以下規則 1 測試檔案必須先import unittest 2 測試類必須繼承uni...

atoi 和itoa用法

int main void 2 atoi 字串轉換到整型數 int atoi const char nptr 跳過前面的空格字元,直到遇上數...