Python 开源项目的正常结构是啥?运行测试的首选方式是啥? [关闭]
Posted
技术标签:
【中文标题】Python 开源项目的正常结构是啥?运行测试的首选方式是啥? [关闭]【英文标题】:What's the normal structure of a Python open source project and what's the preferred way of running the tests? [closed]Python 开源项目的正常结构是什么?运行测试的首选方式是什么? [关闭] 【发布时间】:2011-09-13 05:38:07 【问题描述】:我编写了一些我想分享的代码,并且我想遵循创建/维护其结构的最佳实践。我将在 BitBucket 上托管代码,现在我正在考虑如何组织它。这是一个好的结构吗?
project_name/
lib/
test/
README
所以,这将在 lib 中包含源代码,在 test.xml 中包含测试。这是在 Python 项目中的做法吗?这是我看到的最常用于 Ruby 项目的结构。另外,当我运行单元测试时,这样做是否被认为是一种好习惯:
set PYTHONPATH=`pwd`/lib
python test/a_test.py
【问题讨论】:
嗯,'pwd' 不是跨平台的。关于测试中的 PYTHONPATH,请参阅此问题:***.com/questions/1896918/… @Todd Owen,是的,我知道 pwd 不是跨平台的,但是 Python 在运行脚本时会考虑它的价值。 【参考方案1】:我喜欢的方法如下:
使用 distutils 并创建一个 setup.py 文件。 (这主要是有用的 当你有很多扩展类时)。这将允许您安装 模块系统范围内或 virtualenv 目录中。 如果您想进行认真的测试,但要保持随意的一面,doctest
是您想要的,因为它可以兼作“基本”文档
(当您记录测试并包含一些关于它正在做什么的评论时)。
您可以使用 doctest 在代码的文档字符串中使用测试,或者
将测试保存在一些单独的 .txt 文件中。
您可以通过在 setup.py 文件中使用适当的 cmdclass=...
条目扩展 setup
命令来集成 doctest。见this example (CouchDB setup)
对于在 setup.py 中集成测试的一种解决方案。 (它使用单独的文件
同时拥有测试和实际文档,这也是一种可能)。
【讨论】:
以上是关于Python 开源项目的正常结构是啥?运行测试的首选方式是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章