溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

1個(gè)練習(xí)引發(fā)的系列學(xué)習(xí)之pytest(一)

發(fā)布時(shí)間:2020-07-01 01:45:43 來(lái)源:網(wǎng)絡(luò) 閱讀:3421 作者:ilanqing 欄目:軟件技術(shù)

    拳不離手曲不離口,每日操練不可少!

    今天的練習(xí)題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

    代碼寫完了,自測(cè)的工作還是不可少的,想嘗試著用工具或者框架完成這項(xiàng)工作。

    代碼:https://github.com/wanglanqing/Python_Project/tree/master/dayByDay/day4


一、安裝

使用pip工具安裝非常方便,執(zhí)行pip install pytest即可。


二、編寫測(cè)試用例


    1.用例規(guī)則

    • 以test_開(kāi)頭或以_test結(jié)尾的測(cè)試文件;

    • 以Test開(kāi)頭的測(cè)試類;

    • 以test_開(kāi)頭的測(cè)試方法;

    • 測(cè)試類中,不能有__init__方法;



    2.正常斷言

    pytest的斷言使用assert,同unittest框架相比,大大降低了斷言的學(xué)習(xí)成本。

def test_20171231_365(self):
    self.d4.get_date(2017, 12, 31)
    days = self.d4.get_days()
    assert days==365

    

    2.異常斷言

    對(duì)于無(wú)效的數(shù)據(jù),進(jìn)行了異常的處理,最初單純的使用assert時(shí),發(fā)現(xiàn)執(zhí)行該條case時(shí),總會(huì)出錯(cuò)。通過(guò)使用with pytest.raises(Exception) as err_info的方式,能夠ExceptionInfo() object,通過(guò)object的type、match() 、value等進(jìn)行異常斷言。

def test_day_is_minus(self):
    with pytest.raises(LowThanZero) as err_info:
        self.d4.get_date(2010,-2,1)
        self.d4.get_days()
    assert err_info.match('輸入的值小于0')


  python 提供的API中描述了with pytest.raise()的使用方法。

>>> value = 15
>>> with raises(ValueError) as exc_info:
...     if value > 10:
...         raise ValueError("value must be <= 10")
...     assert exc_info.type == ValueError  # this will not execute


三、執(zhí)行

    在pycharm中執(zhí)行,【Run】-【Edit Configurations】,設(shè)置Working directory

    1個(gè)練習(xí)引發(fā)的系列學(xué)習(xí)之pytest(一)

配置好之后,即可執(zhí)行。

1個(gè)練習(xí)引發(fā)的系列學(xué)習(xí)之pytest(一)


四、生成測(cè)試報(bào)告

       在命令行執(zhí)行pytest --help,可以查看pytest的用法。

1個(gè)練習(xí)引發(fā)的系列學(xué)習(xí)之pytest(一)

    修改設(shè)置,【Run】-【Edit Configurations】,在Additional Arguments處,增加--junit-xml參數(shù)。

1個(gè)練習(xí)引發(fā)的系列學(xué)習(xí)之pytest(一)運(yùn)行結(jié)束后,測(cè)試報(bào)告已保存到本地。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI