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

标签 python unit-testing open-source project-structure

<分区>

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

project_name/
    lib/
    test/
    README

因此,这将在 lib 中包含源代码,在 test 中包含测试。在 Python 项目中是这样做的吗?这是我看到的最常用于 Ruby 项目的结构。另外,当我运行单元测试时,这样做是否被认为是好的做法:

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

最佳答案

我喜欢的方法如下:

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

您可以通过在 setup.py 文件中使用适当的 cmdclass=... 条目扩展 setup 命令来集成 doctest。参见 this example (CouchDB setup) 对于在 setup.py 中集成测试的一种解决方案。 (它使用单独的文件 同时拥有测试和实际文档,这也是一种可能)。

关于python - Python 开源项目的正常结构是什么?运行测试的首选方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319192/

相关文章:

python - 如何在 Open3d 中对齐/注册两个网格? (Python)

c# - 如何从代码覆盖中排除属性中的 lambda 函数?

android - IntelliJ 是否将 "test file"与 APK 中的应用程序一起打包

unit-testing - 作为 Groovy Spock 方法的经典单元测试

在 R 或任何其他工具中读取画面数据 (*.tdsx)

python - 手动制作的 3D 卷积神经网络的形状误差

python - Testbed 中的数据存储 key 不正确

python - 如何安装特定版本的 conda 软件包?

maven - 如何发布Maven项目

open-source - 是否有受支持的 CodePlex 许可证限制将源用于商业?