我知道py.test可以测试单个模块:
import pytest
pytest.run(['mod1.py'])
或者,我可以在python中调用pytest:
import pytest
import os
pytest.main([os.path.basename(__file__)])
我可以在python中执行它,让它运行当前模块吗?我想我能做到:
{{1}}
但是想知道这是否是最“pythonic”的方式。谢谢!
答案 0 :(得分:11)
您的版本不允许将额外的参数传递给pytest(例如,允许./test_file.py -v
)。我试过了
import sys
if __name__ == '__main__':
pytest.main(sys.argv)
似乎可以解决这个问题。 sys.argv[0]
是脚本名称(即__file__
,可能作为相对路径),因此它限制对脚本的调用,sys.argv[1:]
包含在命令行上传递的额外参数。< / p>
任何更好的主意赞赏!