1個練習引起的系列學習之pytest(一)

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

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

    代碼寫完了,自測的工做仍是不可少的,想嘗試着用工具或者框架完成這項工做。
github

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


1、安裝ide

使用pip工具安裝很是方便,執行pip install pytest便可。工具


2、編寫測試用例學習


    1.用例規則測試

    • 以test_開頭或以_test結尾的測試文件;this

    • 以Test開頭的測試類;spa

    • 以test_開頭的測試方法;

    • 測試類中,不能有__init__方法;



    2.正常斷言

    pytest的斷言使用assert,同unittest框架相比,大大下降了斷言的學習成本。

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

    

    2.異常斷言

    對於無效的數據,進行了異常的處理,最初單純的使用assert時,發現執行該條case時,總會出錯。經過使用with pytest.raises(Exception) as err_info的方式,可以ExceptionInfo() object,經過object的type、match() 、value等進行異常斷言。

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


3、執行

    在pycharm中執行,【Run】-【Edit Configurations】,設置Working directory

    c0a7386dab616c31a13ca10834e75ba9.jpg

配置好以後,便可執行。

c7339808e1a261e24617a431d2d9f5ed.png


4、生成測試報告

       在命令行執行pytest --help,能夠查看pytest的用法。

5b272aad930d144998584cc3abdb86df.png

    修改設置,【Run】-【Edit Configurations】,在Additional Arguments處,增長--junit-xml參數。

f70b22bf7a5efaaac82be93ca774d01f.png運行結束後,測試報告已保存到本地。

相關文章
相關標籤/搜索