Вот как я настроил файл pytest.ini, чтобы каждый раз, когда я запускаю тесты из обозревателя тестов VSCode, отчет о покрытии обновлялся:
Код: Выделить всё
[pytest]
addopts = "--cov=src/ --cov-report=lcov:lcov.info --cov-report=term"
env =
TESTING=true
ENV=local
Примечание. Если у вас установлен модуль покрытия 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"
},
},
Код: Выделить всё
[pytest]
# addopts = "--cov=src/ --cov-report=lcov:lcov.info --cov-report=term"
env =
TESTING=true
ENV=local
Подробнее здесь: https://stackoverflow.com/questions/779 ... g-coverage