【问题标题】:Testing sample code in python modules在 python 模块中测试示例代码
【发布时间】:2010-05-07 13:38:01
【问题描述】:

我正在编写一个包含一些示例的 python 模块。这些样本不是单元测试,它们太长太复杂而不能作为文档测试。我对自动检查这些示例是否运行的最佳实践感兴趣。

我当前的项目布局非常标准,除了有一个额外的顶级 makefile 具有构建、安装、单元测试、覆盖率和配置文件目标,根据需要将责任委托给 setup.py 和鼻子。

projectname/
    Makefile
    README
    setup.py
    samples/
        foo-sample
        foobar-sample
    projectname/
        __init__.py
        foo.py
        bar.py
    tests/
        test-foo.py
        test-bar.py

我考虑过添加一个 sampletest 模块,或者在示例的入口函数中添加 nose.tools.istest 装饰器,但是对于少量示例,这些解决方案听起来有点难看。

这个问题类似于Automatically Unit Test Example Code,但我认为python最佳实践与C#不同

【问题讨论】:

  • 在“项目名称”下放置文件“项目名称”是否理想?

标签: python unit-testing testing


【解决方案1】:

大多数时候,我只是使用unittest 来测试我的示例和功能测试。这不是单元测试,但我对 unittest 模块所做的很多事情都不是。引用 Knuth 的话,“如果计算机的程序被用于与其名称不匹配的目的,计算机并不介意。”

【讨论】:

    【解决方案2】:

    你不能这样做:

    if __name__ == "__main__":
      run_tests()
    

    在模块代码中?这样,它只会在模块作为独立程序调用时运行,而不是在将 imported 到其他代码中时运行。

    【讨论】:

    • 问题是某些模块有多个样本,而这些样本中的代码与模块中的代码无关
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多