是否可以在stdout中的每一行打印xdist网关号?

时间:2018-02-22 18:16:12

标签: python pytest xdist

我正在使用日志记录模块打印到stdout。 当我使用pytest-xdist

运行测试时,很难理解哪个消息对应于worker

是否可以在stdout中的每一行打印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

1 个答案:

答案 0 :(得分:1)

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

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

测试只会在实际调用xdist时通过,例如通过pytest -n1 test_spam.py,否则slaveinput属性将无法设置。