主頁(yè) > 知識(shí)庫(kù) > python測(cè)試框架unittest和pytest區(qū)別

python測(cè)試框架unittest和pytest區(qū)別

熱門(mén)標(biāo)簽:南京銷(xiāo)售外呼系統(tǒng)軟件 315電話機(jī)器人廣告 蓋州市地圖標(biāo)注 浙江電銷(xiāo)卡外呼系統(tǒng)好用嗎 上海機(jī)器人外呼系統(tǒng)哪家好 地圖標(biāo)注的意義點(diǎn) 房產(chǎn)電銷(xiāo)外呼系統(tǒng) 地圖制圖標(biāo)注位置改變是移位嗎 地圖標(biāo)注微信發(fā)送位置不顯示

一、用例編寫(xiě)規(guī)則

(1)unittest提供了test cases、test suites、test fixtures、test runner相關(guān)的類(lèi),讓測(cè)試更加明確、方便、可控。使用unittest編寫(xiě)用例,必須遵守以下規(guī)則:

  • 測(cè)試文件必須先import unittest
  • 測(cè)試類(lèi)必須繼承unittest.TestCase
  • 測(cè)試方法必須以“test_”開(kāi)頭
  • 測(cè)試類(lèi)必須要有unittest.main()方法

(2)pytest是python的第三方測(cè)試框架,是基于unittest的擴(kuò)展框架,比unittest更簡(jiǎn)潔,更高效。使用pytest編寫(xiě)用例,必須遵守以下規(guī)則:

  • 測(cè)試文件名必須以“test_”開(kāi)頭或者"_test"結(jié)尾(如:test_ab.py)
  • 測(cè)試方法必須以“test_”開(kāi)頭。
  • 測(cè)試類(lèi)命名以"Test"開(kāi)頭。

  總結(jié): pytest可以執(zhí)行unittest風(fēng)格的測(cè)試用例,無(wú)須修改unittest用例的任何代碼,有較好的兼容性。 pytest插件豐富,比如flask插件,可用于用例出錯(cuò)重跑;還有xdist插件,可用于設(shè)備并行執(zhí)行。     

二、用例前置和后置

(1)unittest提供了setUp/tearDown,每個(gè)用例運(yùn)行前、結(jié)束后運(yùn)行一次。setUpClass和tearDownClass,用例執(zhí)行前、結(jié)束后,只運(yùn)行一次。
(2)pytest提供了模塊級(jí)、函數(shù)級(jí)、類(lèi)級(jí)、方法級(jí)的setup/teardown,比unittest的setUp/tearDown更靈活。

三、斷言

(1)unittest提供了assertEqual、assertIn、assertTrue、assertFalse。
(2)pytest直接使用assert 表達(dá)式。

四、報(bào)告

(1)unittest使用HTMLTestRunnerNew庫(kù)。
(2)pytest有pytest-HTML、allure插件。

五、失敗重跑

(1)unittest無(wú)此功能。
(2)pytest支持用例執(zhí)行失敗重跑,pytest-rerunfailures插件。

六、參數(shù)化

(1)unittest需依賴(lài)ddt庫(kù),
(2)pytest直接使用@pytest.mark.parametrize裝飾器。

使用示例

unittest

class DefaultTestCase(unittest.TestCase):
 
    def setUp(self):
        print "Start to run"
 
    def tearDown(self):
        print "Close"
 
class TestDefaultTestCase(DefaultTestCase):
 
    def test_print_b(self):
        print 'b'
 
    def test_print_a(self):
        print 'a'
 
 
if __name__ == '__main__':
    unittest.main()

運(yùn)行結(jié)果:

pytest

import os
import pytest
 
# pytest是python的單元測(cè)試框架
 
def func(x):
    return x + 1
 
 
def test_a():
    print("____test_a____")
    assert func(2) == 5
 
def test_b():
    print("____test_b____")
    assert func(2) == 3
 
if __name__ == '__main__':
    pytest.main(["-s","pytest1.py"])

以上就是python測(cè)試框架unittest和pytest區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于unittest和pytest區(qū)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python中的unittest框架實(shí)例詳解
  • Python 測(cè)試框架unittest和pytest的優(yōu)劣
  • Python自動(dòng)化之UnitTest框架實(shí)戰(zhàn)記錄
  • Python unittest單元測(cè)試框架實(shí)現(xiàn)參數(shù)化
  • Python unittest單元測(cè)試框架及斷言方法
  • python中unittest框架應(yīng)用詳解

標(biāo)簽:陽(yáng)泉 克拉瑪依 日照 金華 雙鴨山 貴州 臨汾 赤峰

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python測(cè)試框架unittest和pytest區(qū)別》,本文關(guān)鍵詞  python,測(cè)試,框架,unittest,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python測(cè)試框架unittest和pytest區(qū)別》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于python測(cè)試框架unittest和pytest區(qū)別的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章