2014-06-24 75 views
2

我想为pytest-xdist产生的每个子进程/网关创建一个单独的日志文件。有没有一种优雅的方式来查明pypro目前在哪个子进程/网关中?我配置我的根记录与位于conftest.py会话范围的灯具,这样的事情:有没有办法找出pytest-xdist网关正在运行?

@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) 

这将是巨大的,如果我可以添加一个前缀基于网关号码,例如日志文件名:

​​

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

回答

1

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

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

if slaveinput: 
    gatewayid = slaveinput['slaveid'] 

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

相关问题