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

时间:2011-12-01 15:20:23

标签: python unit-testing

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

我只是想要一套清晰的重新设定,这需要最少的工具配置。

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

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

2 个答案:

答案 0 :(得分:15)

不要调用目录test,否则会与内置的test包冲突。

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

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

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

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

您应该查看The Hitch Hiker's Guide to Packaging以获取有关Python包的更多信息。

答案 1 :(得分:1)

这取决于您用来运行测试的工具。

如果您使用的是nosetest,那么用于检测测试的原则非常简单:

  

If it looks like a test, it’s a test.

如果您使用的是py.test,则约定为pretty open too

关于“在哪里放测试”的问题,personnaly,我更喜欢将测试存储在每个包的子目录中,以确保在有人编辑代码时不会忘记运行/触摸测试;)