Python3練習題系列(10)——項目骨架構建


目標:

如何創建《項目“骨架”目錄》
包含:項目文件布局、自動化測試代碼,模組,以及安裝腳本。
由於編寫一個Python 文件可以作為 一個模塊一個帶__init__.py的目錄算一個

創建:

第一步

需要構架的項目文件框架如下:

第二步

構建代碼(Linux系統下的終端):

~ $ mkdir -p projects
~ $ cd projects/
~/projects $ mkdir skeleton
~/projects $ cd skeleton
~/projects/skeleton $ mkdir bin NAME tests docs
# 初始文件配置
~/projects/skeleton $ touch NAME/__init__.py
~/projects/skeleton $ touch tests/__init__.py

注:Window下直接建立文件夾即可。

第三步

安裝項目文件需要的模塊:setup.py文件內容如下:

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

config = {
    'description':'My Project',
    'author':'My Name',
    'url':'URL to get it at.',
    'download_url':'Where to download it.',
    'author_email':'My email.',
    'version':'0.1',
    'install_requires':['nose'],
    'packages':['NAME'],
    'scripts':[],
    'name':'projectname'
}

setup(**config)

創建一個tests/NAME_tests.py的測試文件,代碼如下:

from nose.tools import *
import NAME

def setup():
    print('SETUP')

def teardown():
    print('TEAR DOWN')

def test_basic():
    print('I RAN!')

最終項目骨架結構:

projects/
|-- skeleton/
| |-- bin
| |-- NAME
| | |-- __init__.py
| |-- tests
| | |-- __init__.py
| | |-- NAME_tests.py
| |-- docs
|-- setup.py
|-- Readme

第四步:

測試框架

流程:

1. 拷貝這份骨架目錄,把名字改成你新項目的名字。
2. 再將NAME 模組更名為你需要的名字,它可以是你項目的名字,當然別的名字也行。
3. 編輯setup.py 讓它包含你新項目的相關信息。
4. 重命名tests/NAME_tests.py ,讓它的名字匹配到你模組的名字。
5. 使用nosetests 檢查有無錯誤。
6. 開始寫代碼吧。
 
 


 優秀的項目目錄:

Foo/
|-- bin/
| |-- foo
|
|-- foo/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
1. bin/: 存放項目的一些 可執行文件,當然你可以起名script/之類的也行。
2. foo/: 存放項目的 所有源代碼。(1) 源代碼中的所有模塊、包都應該放在此目錄。不要置於頂層目錄。(2) 其子目錄tests/存放單元測試代碼; (3) 程序的入口最好命名為main.py。
3. docs/: 存放一些文檔。
4. setup.py: 安裝、部署、打包的腳本。
5. requirements.txt: 存放軟件依賴的外部Python包列表。
6. README: 項目說明文件
 

典型的Python文件結構

 

單元測試框架之nose知識點

nose相關執行命令:

  1. nosetests  –h查看所有nose相關命令
  2. nosetests –s執行並捕獲輸出
  3. nosetests –with-xunit輸出xml結果報告
  4. nosetests -v: 查看nose的運行信息和調試信息 
  5. nosetests -w 目錄:指定一個目錄運行測試

nose 特點:

自動發現測試用例(包含[Tt]est文件以及文件包中包含test的函數)

  1. 以test開頭的文件
  2. 以test開頭的函數或方法
  3.  以Test開頭的類

經過研究發現,nose會自動識別[Tt]est的類、函數、文件或目錄,以及TestCase的子類,匹配成功的包、任何python的源文件都會被當做測試用例。

Python3包的創建與安裝

參考文獻:

  1. 笨辦法學Python
  2. http://blog.chinaunix.net/uid-26602509-id-3499026.html
  3. http://python.jobbole.com/86376/
  4. https://www.cnblogs.com/semishigure/archive/2017/08/03/7268251.html
  5. Head First Python
  知識在於點點滴滴的積累,我會在這個路上Go ahead
有幸看到我博客的朋友們,若能學到知識,請多多關注以及討論,讓我們共同進步,揚帆起航。
 

后記:打油詩一首

 

適度鍛煉,量化指標

考量天氣,設定目標

科學鍛煉,成就體標

高效科研,實現學標

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM