Python中测试文件的最佳命名规范是什么?

40 投票
2 回答
26908 浏览
提问于 2025-04-17 07:28

我在寻找一个适合Python测试文件的命名规则,这样可以方便使用不同的测试框架(比如unittest、note、pyunit等),而且也能让这些工具更容易找到测试。

我只是想要一套简单明了的建议,这样工具的配置就能最少。

  • 测试文件夹的名字用什么好?是用test还是tests?
  • 测试放在哪里比较好?是在模块的测试文件夹里,还是在模块的上一级测试文件夹里?
  • 测试文件名用下划线还是连字符?是用test_0.py还是test-0.py?

我知道,我可能闲得太久了 :)

2 个回答

2

这要看你使用什么工具来运行测试。

如果你使用的是 nosetest,那么它检测测试的方式很简单:

只要看起来像测试的,就是测试。

如果你使用的是 py.test,那么它的规则也 相对开放

关于“测试放在哪里”的问题,我个人更喜欢把测试放在每个包的子目录里,这样可以确保在有人编辑代码时,不会忘记运行或查看测试;)

26

不要把目录命名为 test,否则会和内置的 test 包发生冲突。

命名规则可以参考 PEP 8 的“命名约定”部分。用下划线比用连字符要好!

你的包的结构可以稍微灵活一些。我通常会这样做:

package
|-- package
|  |-- __init__.py
|  `-- <etc>
|-- tests
|  `-- <etc>
|-- setup.py
|-- README
|-- LICENCE
`-- <etc>

这样做可以把测试和包本身分开。通过使用 setup.py 安装包时,可以只安装源代码,这样可以保持用户的环境整洁。测试是给需要它们的开发者用的,当他们获取包的源代码时可以用到。

想了解更多关于 Python 包的信息,可以查看 《打包指南》

撰写回答