Как условно установить токси-переменные в зависимости от платформы - PullRequest
2 голосов
/ 29 апреля 2020

Некоторые из моих тестов выполняются только под Linux, а другие - везде. Я хотел бы установить для переменной минимального покрытия более высокое значение при работе на Linux, чем при работе на моем рабочем столе Ma c.

Как я могу это сделать?

Вот немного моего tox.ini:

[tox]
MINCOVERAGE = 35
envlist = py37

[testenv]
commands =
    pytest -v -v -x --fulltrace --tb=long --showlocals \
    --cov={envsitepackagesdir}/secretsapi --cov-report=html --no-cov-on-fail \
    --cov-fail-under={[tox]MINCOVERAGE} mypackage/tests

Я хотел бы установить MINCOVERAGE на 70, когда на Linux, и на 35 на других платформах.

Как я могу это сделать что?

1 Ответ

2 голосов
/ 01 мая 2020

Вы можете определить специфику ОС c и установить переменную среды с разными значениями для каждой ОС:

[tox]
envlist = py37-{linux,mac,win}

[testenv]
platform =
    linux: linux
    mac: darwin
    win: win32
deps =
    pytest
    pytest-cov
setenv =
    MINCOVERAGE = 35  # default for mac, win
    linux: MINCOVERAGE = 70  # special for linux
commands =
    pytest ... --cov-fail-under={env:MINCOVERAGE}

Ссылка в tox документах, как указано в @ sinoro c в комментариях: Спецификация платформы .

...