2011-06-11 50 views
9

我写了一些我想要分享的代码,我想遵循创建/维护其结构的最佳实践。我将在BitBucket上托管代码,现在我正在考虑如何组织它。这是一个好的结构吗?Python开源项目的正常结构是什么,运行测试的首选方式是什么?

project_name/ 
    lib/ 
    test/ 
    README 

因此,这将有源代码库,并在测试中的测试。这是如何在Python项目中完成的?这是我看到的最常用于Ruby项目的结构。此外,当我运行单元测试,是好的做法做像这样:

set PYTHONPATH=`pwd`/lib 
python test/a_test.py 
+0

那么'pwd'不是跨平台的。关于测试中的PYTHONPATH,请参阅以下问题:http://stackoverflow.com/questions/1896918/running-unittest-with-typical-test-directory-structure – 2011-06-11 23:53:17

+0

@Todd Owen,是的,我知道pwd不是跨平台的,但运行脚本时,Python会认为它是有价值的。 – Geo 2011-06-12 09:36:18

回答

1

的方法我来喜欢的是以下几点:

  • 使用的distutils,并创建一个setup.py文件。 (当你有很多扩展类的时候,这主要是有用的 )。这将允许您在系统范围内或在virtualenv目录中安装 模块。
  • 如果您想要进行认真的测试,但要留在事物的偶然一面, doctest是您想要的,因为它可以作为“裸骨”文档加倍 (当您记录测试并包括一些评论它在做什么)。 您可以使用doctest在您的代码的文档字符串中使用测试,也可以将测试保留在一些单独的.txt文件中。

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

相关问题