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

Python中测试文件的最佳命名约定是什么?,python,unit-testing,Python,Unit Testing,我正在寻找python测试文件的最佳命名约定,该约定可以简化不同测试框架(unittest、note、pyunit等)的使用,并且对这些工具的测试自动发现非常友好 我只是想要一个清晰的重新编译集,它需要对工具进行最少的配置 测试目录名测试或测试 把测试放在哪里?在模块/testdir或模块/./testdir中 使用下划线或破折号测试文件名?测试0.py或测试-0.py 我知道,我有太多时间:)不要调用目录test,否则它将与内置的test包冲突 命名约定在中定义。请参阅“命名约定”部分。下

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

我只是想要一个清晰的重新编译集,它需要对工具进行最少的配置

  • 测试目录名<代码>测试或
    测试
  • 把测试放在哪里?在模块/testdir或模块/./testdir中
  • 使用下划线或破折号测试文件名?测试0.py或测试-0.py

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

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

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

包的布局更灵活一些。我倾向于做以下几点:

package
|-- package
|  |-- __init__.py
|  `-- <etc>
|-- tests
|  `-- <etc>
|-- setup.py
|-- README
|-- LICENCE
`-- <etc>
包
|--包装
||--uuu init_uuuuuuuuuuuuuuuuuy.py
|  `-- 
|--测验
|  `-- 
|--setup.py
|--自述
|--执照
`-- 
这使得测试与包本身分离。使用setup.py安装包可以只安装源代码,这可以保持人们的解释器整洁。这些测试是为那些在获得包源代码时需要它们的开发人员准备的


您应该查看Python软件包的更多信息。

这取决于您运行测试所使用的工具

如果使用,用于检测测试的原理非常简单:

如果您正在使用,则约定为


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

谢谢!只有一个子问题:如果我有几个子模块,这意味着我必须在同一个目录中组合所有测试,该怎么办?或者我应该只将它们移动到子目录,如
/tests/a/
?在这一点上,您可以选择任何一种方式。Django使用了我提到的方法,我认为很多人至少把它们放在了一个地方。然而,Django应用程序的测试遍布各处,我相信很多人也是这样做的。我倾向于将测试分散在一个地方(无论是在源代码内部还是外部),但我想不出一个强有力的论据可以给你任何一种方式:)将测试保留在单独目录中的论据完全依赖于美学。我同意@adamnfish的观点,将它们分别放在一个反映代码的目录结构中——这样,人们就更容易找到要运行的特定测试(就像我在开发过程中一直做的那样)。但是,如果您倾向于更改项目结构(添加和删除模块/文件),您可能会错过更新测试,但是您会看到失败,所以您会知道!“-”在Python中会产生问题,因为它违反了将文件名映射到模块名的规则。切勿将有效的Python标识符以外的任何内容用作Python文件名的一部分。