使用if __name__ =='__ main __:进行测试

时间:2011-09-04 06:22:59

标签: python unit-testing

当你编写一些自给自足的脚本时,使用if __name__ == '__main__'作为编写测试的地方是不是一个好主意?

4 个答案:

答案 0 :(得分:5)

测试逻辑和测试永远不应该是“生产”(生产可能意味着由您使用,发布给客户等)代码的一部分。因此,在脚本中将任何地方放在其中是个坏主意。

理想情况下,将它们放在单独的文件中。

答案 1 :(得分:5)

这实际上取决于您的脚本的代码和用途。对于大型和复杂的项目,您肯定必须将所有测试放在一个单独的位置。

但是在处理小事时,将代码与代码一起进行测试可能是一个很好的解决方案 - 这是doctest的主要思想(它是一个很棒的Python模块,允许你在文档字符串中编写测试) 。在这种情况下,您的if __name__ == '__main__'将如下所示:

if __name__ == "__main__":
    import doctest
    doctest.testmod()

我发现它很干净。

答案 2 :(得分:3)

最佳做法是将测试放在使用unittest模块的单独单元中。这种分离允许您保持主代码的清洁(不需要大量的测试帮助函数),并鼓励您编写良好的综合测试,因为您不会因为主代码混乱而受到抑制。

答案 3 :(得分:0)

我想不是,事实上,我看到了很多python脚本(大多数是另一个应用程序的插件)。