Рубрики
Без рубрики

Как я настроил VSCode для Python (тесты, покрытие, профилирование)

1. Установите расширение Python Это можно найти здесь или поиском Python в EXT … Теги с Python, тестированием, профилированием, покрытием.

Может быть найдено здесь или искал Python В разделе расширения.

Сначала вы должны использовать новую виртуальную среду. Используя Виртуальский Инструмент командной строки вы можете использовать virtualenv -p3.9 .venv3.9 Определить новую среду Python 3.9. VSCode должен показать подсказку, спрашиваю вас, хотите ли вы переключиться в эту среду. Выберите «Да».

Для самого проекта я использую следующую структуру:

project_directory
+-- my_module
|   +-- __init__.py
|   +-- __main__.py
|   +-- script.py
+-- tests
    +-- __init__.py
    +-- test_script.py

Как структура проекта использует __init__.py Файлы, которые нам нужно запустить проект в качестве модуля: python -m my_module Отказ Вы также можете адаптировать конфигурации Debug VSCode к этому подходу на основе модуля:

В вщелке Run/Debug Нажмите «Добавить конфигурацию», затем вы можете добавить или редактировать записи, чтобы следовать, например, следующую структуру:

"configurations": [    
        {
            "name": "My Python Module",
            "type": "python",
            "request": "launch",
            "module": "my_module"
        }
    ]

Я использую Pтойцы для тестирования на VSCode. Обязательно настройте тесты для расширения Python и выбирать Pтойца, а также настроить Pтойца для использования вашей конвенции именования. Например, если вы называете свои тестовые файлы что-то вроде test_script.py Где Сценарий Часть указывает на то, что вы тестируете, вы должны выбрать формат тестового имени Тест _ *. PY .

4.1 Определение теста

Я использую следующую структуру

import unittest
from my_module.script import add_func

class TestScript(unittest.TestCase):
    def test_add(self):
        result = add_func(1,2)
        self.assertEqual(result, 3)

4.2 Запуск тестов

Вы можете запустить тесты с терминала через pteest Отказ В качестве альтернативы вы можете использовать значок расширения VSCode и запустить все тесты, нажав на символ запуска на соответствующей вкладке боковой панели.

4.3 Тестовое покрытие

  • Беги Pтойские тесты

    • --cov = main_module Включает покрытие для main_module.
    • - VCOV-отчет = XML Создает файл Coverage.xml, который можно использовать с расширением VSCode охват желоба Отказ
  • Я не передаю эти аргументы Ptyest через VSCode, как это, кажется, нарушает функцию отладки.

Я использую следующие в __main__.py :

import cProfile
from pstats import Stats, SortKey

from my_module.script import add_func


def run_script():
    print(add_func(2,1))


if __name__ == '__main__':
    do_profiling = True
    if do_profiling:
        with cProfile.Profile() as pr:
            run_script()

        with open('profiling_stats.txt', 'w') as stream:
            stats = Stats(pr, stream=stream)
            stats.strip_dirs()
            stats.sort_stats('time')
            stats.dump_stats('.prof_stats')
            stats.print_stats()
    else:
        start_game()

Затем вы можете использовать инструмент, похожий на Снейкивиз Чтобы визуализировать результаты в вашем браузере, запущенным Snakeviz Program.prof Отказ

  • Todo Tree Организует ваши Тодос в аккуратной структуре дерева, Ключевые слова Toddo могут быть настроены

Оригинал: “https://dev.to/yamakanto/how-i-set-up-vscode-for-python-tests-coverage-profiling-2jf4”