如何解决单元测试Python脚本
我是Python新手。
是否可以在不将代码包装在函数/类中的情况下测试Python脚本?
假设我要用UT覆盖此脚本https://github.com/aws-samples/aws-glue-samples/blob/master/examples/join_and_relationalize.py
是否可以为其编写一些UT https://docs.python.org/3/library/unittest.html?
问题是:我无法在AWS Glue中运行方法/函数,而只有脚本是该框架的输入点。
https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python.html
解决方法
是否可以在不将代码包装在函数/类中的情况下测试Python脚本?
您可以只创建运行脚本本身的单元测试(例如,使用subprocess
,检查脚本是否具有正确的retval /输出)。
问题是:我无法在AWS Glue中运行方法/函数,而只有脚本是该框架的输入点。
除非AWS Glue明确禁止这样做(实际上我不太可能),否则实际上并不能排除编写函数(甚至类)的可能性。
Python文件既是可运行的脚本又是可导入的库,这很常见。您只需要“控制”脚本入口点即可:
def a_function():
print("a function")
def main():
a_function()
# magic!
if __name__ == '__main__':
main()
最后两行是魔术位:__name__
仅等于"__main__"
,如果文件是作为脚本运行的。
这意味着,如果您运行上述文件,它将立即打印“一个函数”,但是如果您import
,它将在您调用a_function()
(或{{1 }}。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。