天天看點

【python種子項目ppc】保姆級别指導給項目添加測試第一步 編寫一個函數并實作測試第二步編寫測試

前面學委介紹了 pypi-seed優質庫快速生成一個項目

,然後開發自己的翻譯小項目。

這次我們開發函數并編寫測試代碼,項目中持續加測試,可以讓程式品質更高,後期改了直接運作測試,更有保障。

對了,還沒有安裝ppc的直接運作下面指令:

pip install pypi-seed # pip install --upgrade pypi-seed 或者這個指令更新最近ppc
ppc # 運作pypiseed指令行檢視使用幫助
      
【python種子項目ppc】保姆級别指導給項目添加測試第一步 編寫一個函數并實作測試第二步編寫測試

第一步 編寫一個函數并實作測試

繼續使用前篇項目的代碼,複制下面黏貼到:demo.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/9/14 10:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : demo.py
# @Project : helloworld


from translate import Translator


def translate(text):
    translator = Translator(to_lang="chinese")
    return translator.translate(text)

      

這個非常簡單就是直接調用中文翻譯。

這裡我們不寫main函數了。

第二步編寫測試

複制下面代碼儲存到tests目錄,檔案名為demo_test.py

# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
import unittest

#導入子產品的demo函數
from helloworld import demo 


class DemoTest(unittest.TestCase):
    def test_translate(self):
        expect = "好好學習,天天向上"
        actual = demo.translate("good good study, day day up")
        self.assertNotEqual(expect, actual)
        expect = "好好學習 , 天天向上"
        self.assertEqual(expect, actual)
        print("測試結束,一切順利")


if __name__ == '__main__':
    unittest.main()

      

這個測試代碼有main函數。

直接運作代碼,效果如下:

【python種子項目ppc】保姆級别指導給項目添加測試第一步 編寫一個函數并實作測試第二步編寫測試

這裡我們看到“測試結束,一切順利“。

因為中間出錯誤,不可能執行到最後一行。

上面的測試代碼主要分三步

導入helloworld子產品的demo函數

調用demo 函數擷取輸出到actual變量

調用測試工具的函數校驗actual跟expect(預期結果)比對,測試失敗則不繼續執行,直接報錯。

新知識unittest

這是python内置的測試子產品。

它就像機器人一樣,安裝我們指定的測試校驗要求,自動執行代碼,自動校驗,錯了會告訴我們(通過運作結果)

編寫我們自己開發的函數的測試,分為下面三步

導入unittest子產品

實作一個unittest.TestCase子類

編寫測試函數

再往上看一看測試代碼,回顧一下這個步驟吧。

第三 把測試代碼故意改錯

這裡代碼不貼了,讀者直接定位測試11行,在expect文本内容添加‘【雷學委】’。

【python種子項目ppc】保姆級别指導給項目添加測試第一步 編寫一個函數并實作測試第二步編寫測試

總結

本次我們繼續在pypi-seed建立的實戰項目中添加測試代碼。

代碼中的測試很有必要!總不能每次都手工運作main函數。

實際項目會有成百上千個python腳本,導入很多外部子產品,這些不可能一個一個編寫main函數并去運作。

我們都會通過測試架構來批量運作測試用例!是以項目必須在開始階段就加入測試用例。

還沒有安裝ppc的可以運作下面指令:

pip install pypi-seed # pip install --upgrade pypi-seed 或者這個指令更新最近ppc
ppc # 運作pypiseed指令行檢視使用幫助
      

ppc還有更多功能,學委本次沒有展示的,下次再一一解析!

項目中的其他檔案可以參考其他文章:

https://levin.blog.csdn.net/article/details/120214153 https://levin.blog.csdn.net/article/details/116111486