仅从当前模块从python调用pytest

时间:2016-02-12 02:25:16

标签: python pytest

我知道py.test可以测试单个模块:

import pytest
pytest.run(['mod1.py'])

或者,我可以在python中调用pytest:

import pytest
import os
pytest.main([os.path.basename(__file__)])

我可以在python中执行它,让它运行当前模块吗?我想我能做到:

{{1}}

但是想知道这是否是最“pythonic”的方式。谢谢!

1 个答案:

答案 0 :(得分:11)

您的版本不允许将额外的参数传递给pytest(例如,允许./test_file.py -v)。我试过了

import sys


if __name__ == '__main__':
    pytest.main(sys.argv)

似乎可以解决这个问题。 sys.argv[0]是脚本名称(即__file__,可能作为相对路径),因此它限制对脚本的调用,sys.argv[1:]包含在命令行上传递的额外参数。< / p>

任何更好的主意赞赏!