zoukankan      html  css  js  c++  java
  • 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
    有幸看到我博客的朋友们,若能学到知识,请多多关注以及讨论,让我们共同进步,扬帆起航。
     

    后记:打油诗一首

     

    适度锻炼,量化指标

    考量天气,设定目标

    科学锻炼,成就体标

    高效科研,实现学标

     
  • 相关阅读:
    16个激发你创新灵感的网站设计资源
    时髦而精巧的Iphone墙纸收集
    分享一个比lightbox配置更方便的jQuery web2.0图片显示插件:Topup
    使用HTML5,CSS3和jQuery来增强网站的用户体验和使用乐趣5
    使用Beautify.js来美化你的jQuery代码
    分享10个jQuery的全景图片展示插件
    使用sublime text 2开发Javacript和jQuery
    分享10个便利的HTML5/CSS3框架
    分享5个javascript的数字格式化函数
    分享10个必备的简化Web设计的HTML5工具
  • 原文地址:https://www.cnblogs.com/brightyuxl/p/9213277.html
Copyright © 2011-2022 走看看