我想为名为foo-bar的python 3.7+ * script *创建一个测试(这是文件名,并且没有.py
扩展名):
#!/usr/bin/env python
def foo(bar):
return bar + 42
if __name__ == '__main__':
print(foo(1))
如何单独通过路径加载该文件,以便可以测试foo()方法?该测试不应触发“如果为主要”条件。
),而是将其作为模块/资源加载/导入,从而允许测试代码执行
foo()`。问题来源:stackoverflow
您可以使用importlib中的函数直接从脚本文件加载该模块,而无需扩展名.py。
要使此工作有效,您需要显式使用加载程序,在这种情况下,SourceFileLoader可以正常工作。
from importlib.machinery import SourceFileLoader
foo_bar = SourceFileLoader('foo_bar', './foo-bar').load_module()
此时,您可以使用模块内部的功能:
result = foo_bar.foo(1)
assert result == 43
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。