是否可以将 xdist 网关编号打印到标准输出中的每一行?

Is it possible to print xdist gateway number to each line in stdout?

我正在使用日志记录模块打印到标准输出。 当我 运行 使用 pytest-xdist

测试时,很难理解什么消息对应于 worker

是否可以将 xdist 网关号打印到标准输出中的每一行?

我现在拥有的日志消息示例:

[02-22-2018_19.44.11] [DEBUG] [file.py:96] - Message
[02-22-2018_19.44.11] [DEBUG] [file2.py:16] - Message
[02-22-2018_19.44.12] [DEBUG] [file3.py:23] - Message
[02-22-2018_19.44.12] [DEBUG] [file4.py:30] - Message

期望:

[02-22-2018_19.44.11] [gw1] [DEBUG] [file.py:96] - Message
[02-22-2018_19.44.11] [gw0] [DEBUG] [file2.py:16] - Message
[02-22-2018_19.44.12] [gw0] [DEBUG] [file3.py:23] - Message
[02-22-2018_19.44.12] [gw3] [DEBUG] [file4.py:30] - Message

gw1 [02-22-2018_19.44.11] [DEBUG] [file.py:96] - Message
gw0 [02-22-2018_19.44.11] [DEBUG] [file2.py:16] - Message
gw0 [02-22-2018_19.44.12] [DEBUG] [file3.py:23] - Message
gw3 [02-22-2018_19.44.12] [DEBUG] [file4.py:30] - Message

您可以通过 config.slaveinput 属性访问网关 ID。示例:

def test_spam(pytestconfig):
    assert hasattr(pytestconfig, 'slaveinput')
    assert pytestconfig.slaveinput['slaveid'] == 'gw0'

只有当 xdist 被实际调用时,测试才会通过,例如通过 pytest -n1 test_spam.py,否则不会设置 slaveinput 属性。