调用pytest只有
问题描述:
我知道py.test可以测试一个模块,如果我做的:调用pytest只有
py.test mod1.py
或者,我可以调用内部蟒蛇pytest:
import pytest
pytest.run(['mod1.py'])
灿我在python里面做,并让它运行当前模块?我想我可以这样做:
import pytest
import os
pytest.main([os.path.basename(__file__)])
但不知道这是否是最“pythonic”的方式来做到这一点。谢谢!
答
您的版本不允许向pytest传递额外的参数(例如允许./test_file.py -v
)。我想简单地
import sys
if __name__ == '__main__':
pytest.main(sys.argv)
,似乎这样的伎俩。 sys.argv[0]
是脚本名称(即__file__
,可能是一个相对路径),所以它限制对脚本的调用,并且sys.argv[1:]
包含在命令行上传递的额外参数。
任何更好的想法赞赏!
你显示的例子是针对一个文件,但是你问的问题是关于模块。请清楚你想要什么 –