Отладка Python unittest в vscode

#python #debugging #visual-studio-code #python-unittest

#python #отладка #visual-studio-code #python-unittest

Вопрос:

Я хотел бы подключить отладчик во время запуска модуля unittest. Кажется, я не могу найти никакой информации об этом через Google. Есть ли у кого-нибудь конфигурация, которая позволяла бы выполнять отладку в программе тестирования python? Другая проблема заключается в том, что я использую аргумент discover для соответствия моему тестовому шаблону. Я не возражаю против отладки отдельных файлов, но было бы неплохо просто запустить отладчик с конфигурацией, с которой мне не нужно возиться всякий раз, когда мне нужно перейти на другой файл.

python -m unittest discover -p "*_test.py"

Я попытался добавить эту конфигурацию

     {
      "name": "Python: Unittest",
      "type": "python",
      "request": "launch",
      "module": "unittest",
      "args": ["discover", "-p", "'*_test.py'"]
    },
 

но я получаю no matches found: '*_test.py' сообщение об ошибке…

у кого-нибудь есть идеи? другой способ отладки в unittest runner?

Комментарии:

1. вы сказали, в каком каталоге искать тестовые файлы, Debug Test не работает ли Codelens

2. Да, пробовал даже использовать один тест в корне для простоты. Я перепробовал кучу разных способов… я не уверен, что Debug Test означает codelens?

3. Если обнаружение теста работает, вы видите строку Codelens над тестом, см. Документ python о тестировании, обнаружение теста указано с параметром python.testing.unittestArgs , КОТОРОГО НЕТ в launch.json

Ответ №1:

1. Нажмите Ctrl Shift P, чтобы открыть Command Platte;

2.Выберите Python: Discover Tests, появится уведомление, позволяющее включить и настроить тестовую среду:

введите описание изображения здесь

3.Выберите Unittest, затем вы можете выбрать опцию для идентификации тестовых файлов: введите описание изображения здесь

Прежде всего, это написано в workspace settings.json: введите описание изображения здесь

Таким образом, вы можете установить правило идентификации с помощью параметра:

 "python.testing.unittestArgs":[]
 

Об отладке всех тестов команды Python: Debug All Tests и Python: Debug Test Method (как на палитре команд, так и в меню строки состояния) запускают отладчик для всех тестов и одного метода тестирования соответственно.

Более подробную информацию см. в разделе Тесты тестирования и отладки.