目标:
如何创建《项目“骨架”目录》
包含:项目文件布局、自动化测试代码,模组,以及安装脚本。
由于编写一个Python
文件可以作为
一个模块,
一个带__init__.py的目录算一个
包。
创建:
第一步
需要构架的项目文件框架如下:
![](https://i-blog.csdnimg.cn/blog_migrate/62ff50381e822dfb8dcf10be9dde3ff7.png)
第二步
构建代码(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文件结构
![](https://i-blog.csdnimg.cn/blog_migrate/fb75a23f44978a0ef111de5198d8860b.jpeg)
单元测试框架之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,
有幸看到我博客的朋友们,若能学到知识,请多多关注以及讨论,让我们共同进步,扬帆起航。
后记:打油诗一首
适度锻炼,量化指标
考量天气,设定目标
科学锻炼,成就体标
高效科研,实现学标