我写了一个python模块。运行python filename.py,只检查语法错误。是否有一个工具,它也检查运行时错误,比如将int与字符串等连接起来。
谢谢你 巴拉
更新: 脚本主要是关于在云中设置hadoop集群。我不确定如何编写单元测试,因为所有内容都在云中运行。您可以将代码视为遗留代码,我只是在一些地方添加了更多日志记录和一些额外条件
答案 0 :(得分:2)
您可以为模块编写单元测试。这样它就会执行你的代码,并且会报告任何运行时错误(甚至更好的测试失败)。
如果您选择沿着这条路走下去,http://docs.python.org/library/unittest.html可能是一个很好的起点。或者,正如Alex写的那样,您可以将代码放在模块的底部,该代码将在模块直接运行时执行。这是更方便的,可能是更好的第一种方法,但如果你有很多模块,你可能想要一种更有条理的方法。
答案 1 :(得分:2)
传统上,如果不编写成熟的单元测试和/或文档测试(编写大量测试当然是最佳实践!),至少应该在每个模块中添加def main():
函数来执行它并以
if __name__ == '__main__':
main()
所以如果刚刚导入模块,main()
将不会妨碍,但如果您将模块作为主脚本运行,它将会执行。当然,你需要在main()
内实际运用模块中的代码,以便捕获各种语义问题,例如你提到的类型错误 - 以这种方式做一个非常彻底的工作通常很难正如编写真正的单元测试和文档测试一样,但你至少可以开始了!