我想测试cookiecutter生成的项目在多种调用模式下的行为。
鉴于以下生成的项目
proj/
proj/
__init__.py
__main__.py
内容__init__.py
:
def func():
pass
内容__main__.py
:
from proj import func
def main():
func()
if __name__ == '__main__':
main()
(我已经阅读过关于 的问题__main__.__spec__
,这不是这个问题的内容。事实上,我想试驾-TDD-我的这些问题的解决方法)
现在我编写测试,其中生成的项目结构和位置是已知的(例如,可通过 pytest 固定装置获得)
test_run_proj_script():
"""Test behavior of ``python3 ./proj``"""
pass # how to run this?
test_run_proj_module():
"""Test behavior of ``python3 -m ./proj``"""
pass # how to run this?
sys.argv
奖励:为?注入值