gpt4 book ai didi

pytest - 有没有办法找出正在运行的 pytest-xdist 网关?

转载 作者:行者123 更新时间:2023-12-04 20:42:06 26 4
gpt4 key购买 nike

我想为 pytest-xdist 产生的每个子进程/网关创建一个单独的日志文件。是否有一种优雅的方法可以找出 pytest 当前所在的子进程/网关?我正在使用位于 conftest.py 的 session 范围 fixture 配置我的根记录器,像这样:

@pytest.fixture(scope='session', autouse=True)
def setup_logging():
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

fh = logging.FileHandler('xdist.log')
fh.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)

logger.addHandler(fh)

如果我可以根据网关号为日志文件名添加前缀,那就太好了,例如:
 fh = logging.FileHandler('xdist_gateway_%s.log' % gateway_number)

如果没有这个,每个网关将使用相同的日志,日志会变得困惑。我知道我可以为文件名添加时间戳。但这并不能让我快速区分哪个文件来自哪个网关。

最佳答案

我发现您可以通过以下方式访问网关 ID:

slaveinput = getattr(session.config, "slaveinput", None)

if slaveinput:
gatewayid = slaveinput['slaveid']

当然,您需要在可以访问 session.config 对象的地方。

关于pytest - 有没有办法找出正在运行的 pytest-xdist 网关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24395125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com