当你编写一些自给自足的脚本时,使用if __name__ == '__main__'
作为编写测试的地方是不是一个好主意?
答案 0 :(得分:5)
测试逻辑和测试永远不应该是“生产”(生产可能意味着由您使用,发布给客户等)代码的一部分。因此,在脚本中将任何地方放在其中是个坏主意。
理想情况下,将它们放在单独的文件中。
答案 1 :(得分:5)
这实际上取决于您的脚本的代码和用途。对于大型和复杂的项目,您肯定必须将所有测试放在一个单独的位置。
但是在处理小事时,将代码与代码一起进行测试可能是一个很好的解决方案 - 这是doctest
的主要思想(它是一个很棒的Python模块,允许你在文档字符串中编写测试) 。在这种情况下,您的if __name__ == '__main__'
将如下所示:
if __name__ == "__main__":
import doctest
doctest.testmod()
我发现它很干净。
答案 2 :(得分:3)
最佳做法是将测试放在使用unittest模块的单独单元中。这种分离允许您保持主代码的清洁(不需要大量的测试帮助函数),并鼓励您编写良好的综合测试,因为您不会因为主代码混乱而受到抑制。
答案 3 :(得分:0)
我想不是,事实上,我看到了很多python脚本(大多数是另一个应用程序的插件)。