目標:
如何創建《項目“骨架”目錄》
包含:項目文件布局、自動化測試代碼,模組,以及安裝腳本。
由於編寫一個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相關執行命令:
- nosetests –h查看所有nose相關命令
- nosetests –s執行並捕獲輸出
- nosetests –with-xunit輸出xml結果報告
- nosetests -v: 查看nose的運行信息和調試信息
- nosetests -w 目錄:指定一個目錄運行測試
nose 特點:
自動發現測試用例(包含[Tt]est文件以及文件包中包含test的函數)
- 以test開頭的文件
- 以test開頭的函數或方法
- 以Test開頭的類
經過研究發現,nose會自動識別[Tt]est的類、函數、文件或目錄,以及TestCase的子類,匹配成功的包、任何python的源文件都會被當做測試用例。
Python3包的創建與安裝
參考文獻:
- 笨辦法學Python
- http://blog.chinaunix.net/uid-26602509-id-3499026.html
- http://python.jobbole.com/86376/
- https://www.cnblogs.com/semishigure/archive/2017/08/03/7268251.html
- Head First Python
知識在於點點滴滴的積累,我會在這個路上Go ahead,
有幸看到我博客的朋友們,若能學到知識,請多多關注以及討論,讓我們共同進步,揚帆起航。
后記:打油詩一首
適度鍛煉,量化指標
考量天氣,設定目標
科學鍛煉,成就體標
高效科研,實現學標