什么是Python开源项目的正常结构,以及运行测试的首选方式是什么?

Geo*_*Geo 9 python open-source unit-testing project-structure

我写了一些我想分享的代码,我想遵循创建/维护它的结构的最佳实践.我将在BitBucket上托管代码,现在我正在考虑如何组织它.这是一个很好的结构吗?

project_name/
    lib/
    test/
    README
Run Code Online (Sandbox Code Playgroud)

所以,这将有lib中的源代码和测试中的测试.这是在Python项目中完成的吗?这是我看到的最常用于Ruby项目的结构.另外,当我运行单元测试时,这样做是不错的做法:

set PYTHONPATH=`pwd`/lib
python test/a_test.py
Run Code Online (Sandbox Code Playgroud)

小智 1

我喜欢的方法如下:

  • 使用 distutils 并创建一个 setup.py 文件。(当您有很多扩展类时,这非常有用)。这将允许您在系统范围内或在 virtualenv 目录中安装模块。
  • 如果您想要进行认真的测试,但保持随意的一面, doctest这就是您想要的,因为它可以兼作“基本”文档(当您记录测试并包含一些对其正在执行的操作的评论时)。您可以使用 doctest 在代码的文档字符串中使用测试,也可以将测试保留在一些单独的 .txt 文件中。

您可以通过使用 setup.py 文件中的setup适当条目扩展命令来集成 doctest。cmdclass=...请参阅此示例(CouchDB 设置), 了解在 setup.py 中集成测试的一种解决方案。(它使用包含测试和实际文档的单独文件,这也是一种可能性)。