我正在寻找一种最佳的命名约定,以便轻松使用不同的测试框架(unittest、note、pyunit等),并且这种约定也对这些工具的测试自动发现友好。
我只想要一组明确的建议,这需要最少的配置工作。
- 测试目录名称是
test
还是tests
? - 将测试放在哪里?在模块/测试目录中还是在模块/../测试目录中?
- 使用下划线还是破折号作为测试文件名分隔符?test_0.py 还是 test-0.py?
我知道,我有太多时间了 :)
我正在寻找一种最佳的命名约定,以便轻松使用不同的测试框架(unittest、note、pyunit等),并且这种约定也对这些工具的测试自动发现友好。
我只想要一组明确的建议,这需要最少的配置工作。
test
还是 tests
?我知道,我有太多时间了 :)
不要将目录命名为test
,否则会与内置的test
包发生冲突。
Python命名约定在PEP 8中定义。请参见“命名约定”部分。下划线比连字符更好!
你的包的布局有一定的灵活性。我倾向于按照以下方式操作:
package
|-- package
| |-- __init__.py
| `-- <etc>
|-- tests
| `-- <etc>
|-- setup.py
|-- README
|-- LICENCE
`-- <etc>
这样可以将测试代码与软件包本身分开。使用setup.py安装软件包时,只会安装源代码,这样可以使人们的解释器保持整洁。测试代码适用于需要在获取软件包源代码时进行测试的开发人员。
您可以参考《Python软件包指南》了解更多关于Python软件包的信息。
/tests/a/
? - bogdan这取决于您用来运行测试的工具。
如果您正在使用 nosetest,则用于检测测试的哲学非常简单:
关于“将测试放在哪里”的问题,我个人更喜欢将测试存储在每个包的子目录中,以确保在有人编辑代码时不会忘记运行 / 修改测试 ;)