Python3练习题系列(10)——项目骨架构建

十年热恋 提交于 2020-05-07 18:25: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
有幸看到我博客的朋友们,若能学到知识,请多多关注以及讨论,让我们共同进步,扬帆起航。
 

后记:打油诗一首

 

适度锻炼,量化指标

考量天气,设定目标

科学锻炼,成就体标

高效科研,实现学标

 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!