每次测试导入模块测试而不是模块级导入?

时间:2011-03-14 01:15:42

标签: python unit-testing pylons

我最近遇到了一些单元测试代码,它导入模块以在要测试的函数中进行测试,而不是模块级导入。

然后,谷歌搜索后,我发现Pylons/Pyramid best practices的原因是“导入失败......永远不应该阻止这些测试运行”。

这应该是标准做法吗?

我发现它有点难看,而且,他们的类示例看起来像是轻微的过度工程。

1 个答案:

答案 0 :(得分:1)

如果导入文件顶部测试的所有模块,而不是单元测试功能,则导入错误将阻止任何测试运行。我对此有两点看法。这取决于你如何运行你的单元测试。

如果您在命令行上运行测试,或者从Hudson或Jenkins运行测试,那么您将注意到导入错误并立即更正。在这种情况下,我不认为在模块级别导入所有内容是一个问题。它当然更方便,并且需要更少的重复。

如果导入错误有可能导致静默失败(例如,如果您的unittest框架甚至无法告诉您它失败,除非它可以导入您的测试模块),那么在其中导入模块可能更安全你的测试功能。