Отладчик тестов VSCode не останавливается на точках останова при использовании покрытияPython

Программы на Python
Anonymous
Отладчик тестов VSCode не останавливается на точках останова при использовании покрытия

Сообщение Anonymous »

Я начал использовать pytest-cov для создания отчетов о покрытии. Использование VSCode.
Вот как я настроил файл pytest.ini, чтобы каждый раз, когда я запускаю тесты из обозревателя тестов VSCode, отчет о покрытии обновлялся:

Код: Выделить всё

[pytest]
addopts = "--cov=src/ --cov-report=lcov:lcov.info --cov-report=term"
env =
TESTING=true
ENV=local
Но я также хочу иметь возможность отлаживать тесты и останавливаться на точках останова. Как сказано в документации VSCode

Примечание. Если у вас установлен модуль покрытия pytest-cov, VS Code не останавливается на точках останова во время отладки, поскольку pytest-cov используя ту же технику для доступа к запускаемому исходному коду. Чтобы предотвратить такое поведение, включите --no-cov в pytestArgs при отладке тестов, например, добавив "env": {"PYTEST_ADDOPTS": "--no-cov"} в вашу конфигурацию отладки. (О том, как настроить конфигурацию запуска, см. выше «Отладочные тесты».) (Дополнительную информацию см. в разделе «Отладчики и PyCharm» в документации pytest-cov.)

Итак, моя конфигурация для отладки тестов в launch.json такая:

Код: Выделить всё

        {
"name": "Python: Debug Tests",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"purpose": [
"debug-test"
],
"console": "integratedTerminal",
"justMyCode": true,
// "justMyCode": false,
"env": {
"ON_HEROKU": "0",
"PYTEST_ADDOPTS": "--no-cov",
"ECHO_SQL_QUERIES": "1"
},
},
Тем не менее, при отладке тестов он не останавливается на точках останова, даже если я установил там переменную env PYTEST_ADDOPTS. Единственный способ заставить это работать — прокомментировать строку addopts в pytest.ini

Код: Выделить всё

[pytest]
# addopts = "--cov=src/ --cov-report=lcov:lcov.info --cov-report=term"
env =
TESTING=true
ENV=local
Как я могу заставить его вести себя так, как я хочу, без необходимости комментировать и раскомментировать эту строку в pytest.ini?

Подробнее здесь: https://stackoverflow.com/questions/779 ... g-coverage

Вернуться в «Python»