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

Pau*_*nta 9 python unit-testing

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

man*_*lds 5

测试逻辑和测试绝对不能成为“生产”(生产可能意味着您正在使用,发布给客户端等)代码的一部分。因此,在脚本中的任何位置放置它们都是一个坏主意。

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


Rom*_*huk 5

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

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

if __name__ == "__main__":
    import doctest
    doctest.testmod()
Run Code Online (Sandbox Code Playgroud)

我发现它很干净.