Я пишу юнит-тесты для моего Python 3.6 модуля, используя встроенную unittest framework . Я использую Visual Studio Code (VS Code) в качестве своей IDE. Мои тесты вызываются с помощью инструмента покрытия Python , таким образом
coverage run --include=preprocessing/load_data.py preprocessing/test_load_data.py
coverage report --show-missing
Я получаю сообщение об ошибке одного из моих тестов, которое, как я подозреваю, связано с настройкой среды тестирования. и поэтому я хотел бы вызвать точку останова в тесте. Если бы я запускал тест непосредственно из Python, я мог бы легко настроить конфигурацию при запуске кода V C. json, но я не могу понять, как это сделать для кода, вызываемого косвенно при покрытии. Вот моя попытка:
{
"name": "Python: Use Coverage to Run Tests",
"type": "python",
"request": "launch",
"module": "coverage",
"args": [
"run", "--include=preprocessing/load_data.py",
"preprocessing/test_load_data.py"
],
"console": "integratedTerminal"
}
Это запускает программу, но точка останова не срабатывает.
Я также попытался присоединить к локальному сценарию , но добавив
ptvsd.enable_attach(address=('localhost', 5678), redirect_output=True)
ptvsd.wait_for_attach()
вызывает ошибку из инструмента покрытия:
sys.settrace() should not be used when the debugger is being used.
Call Location:
File "C:\Anaconda\envs\talia36\lib\site-packages\coverage\collector.py", line 278, in _installation_trace
sys.settrace(None)
Как я могу настроить Python отладку в VS Code, чтобы мой модульный тест вызывался из покрытия и срабатывал точки останова