如何从控制台菜单 运行 pytest?

How to run pytest from console menu?

我有控制台菜单,例如:

if n == 1:
    exec('pytest test_1.py' ) # example, it doesn't work
elif n == 2:
    exec('pytest test_2.py' ) # example, it doesn't work

和login.py:

from functools import partial
import pytest_bdd

scenario = partial(pytest_bdd.scenario, '..\login.feature')

@Scenario('login 2')
def test_2():
    pass()

并且我想在使用此菜单时为特殊方法 (test_2) 启动 pytest。 现在我从 PyCharm 终端或“运行”“调试”运行nig 我的 pytest。

如何使用 python 中的 exec() 来调用 pytest?
喜欢:

exec('pytest -s login.test_2')

可能吗?或者它有别的方法?

我认为你可以使用子进程调用 pytest:

import subprocess
subprocess.run(["pytest", "-s", "login.test_2"])