Python中测试文件的最佳命名约定是什么?

bog*_*dan 24 python unit-testing

我正在寻找python测试文件的最佳命名约定,它可以简化不同测试框架(unittest,note,pyunit,...)的使用,并且对于这些工具的测试自动发现也很友好.

我只想要一套清晰的再生,这需要最少的工具配置.

  • 测试目录名称?test还是tests
  • 在哪里进行测试?在module/testdir或module /../ testdir中
  • 使用下划线或短划线测试文件名?test_0.py或test-0.py

我知道,我有太多时间:)

ada*_*ish 15

不要调用目录,test否则它将与内置test程序包冲突.

命名约定在PEP 8中定义.请参阅"命名约定"部分.下划线比连字符更好!

包的布局更灵活一些.我倾向于做以下事情:

package
|-- package
|  |-- __init__.py
|  `-- <etc>
|-- tests
|  `-- <etc>
|-- setup.py
|-- README
|-- LICENCE
`-- <etc>
Run Code Online (Sandbox Code Playgroud)

这使测试与包本身分开.使用setup.py安装软件包可以只安装源代码,这可以使人们的解释器保持整洁.对于那些在获得包源时需要它们的开发人员,可以使用这些测试.

您应该查看The Hitch Hiker的包装指南,了解有关Python包的更多信息.

  • 将测试保存在单独目录中的论据完全取决于美学.我同意@adamnfish将它们分别放在一个镜像代码的目录结构中 - 这样人们就可以更容易地找到运行的特定测试(就像我在开发过程中一直这样做).但是,如果您倾向于更改项目结构(添加和删除模块/文件),您可能会错过更新测试 - 但您会看到失败,所以您会知道! (3认同)
  • 谢谢!只有一个子问题:如果我有几个子模块,这意味着我必须在同一目录中组合所有测试?或者我应该只将它们移动到像`/ tests/a /`这样的子目录? (2认同)