«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как запускать модульные тесты с пользовательскими флагами в VS Code?

Как запускать модульные тесты с пользовательскими флагами в VS Code?

Опубликовано 18 ноября 2024 г.
Просматривать:989

How to Run Unit Tests with Custom Flags in VS Code?

Выполнение модульных тестов с пользовательскими флагами

В Visual Studio Code (VS Code) вы можете столкнуться с проблемами при запуске и отладке модульных тестов, когда вы необходимо предоставить определенные флаги. Давайте углубимся в проблему и предоставим комплексное решение.

Обзор проблемы

При запуске модульных тестов из VS Code пользователям может потребоваться указать специальные флаги, например - ldflags в приведенном примере. Однако они столкнулись с трудностями при интеграции этих флагов в программу запуска тестов VS Code.

Рабочие конфигурации

В ходе экспериментов было обнаружено, что для обеспечить функциональность как запуска теста, так и отладки:

  • Запуск теста:

    "go.testFlags": [
      "-ldflags",
      "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
    ]
  • Отладочный тест:

    "go.testFlags": [
      "-ldflags",
      "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
    ]

Основная проблема

Причина различных конфигураций заключается в том, как VS Code генерирует тестовую команду. При отладке VS Code добавляет к команде дополнительные параметры, которые влияют на интерпретацию флагов. Таким образом, одинарные кавычки в конфигурации отладки необходимы для обеспечения правильной передачи флагов.

Возможное решение

Альтернативный метод, предлагаемый для отладки сложных тестов: для компиляции тестового двоичного файла и запуска сеанса отладки dlv. Это позволяет более точно контролировать выполнение тестов и отладку.

Использование dlv для отладки

Следующие шаги описывают, как использовать dlv для отладки модульных тестов:

  1. Скомпилируйте тестовый двоичный файл с необходимыми флагами, например:

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
  2. Начать сеанс безголового dlv:

    dlv exec ./foo.test  --headless --listen=:2345 --log --api-version=2    -- -count=1 -- $(pwd)/some/path
  3. В VS Code откройте конфигурацию запуска файл (Отладка: открыть файл launch.json). Создайте конфигурацию, подобную следующей:

    {
     "version": "0.2.0",
     "configurations": [
         {
             "name": "Debug Test",
             "type": "go",
             "request": "attach",
             "mode": "remote",
             "port": 2345,
             "host": "127.0.0.1",
             "showLog":true,
             "trace":"log"
         }
     ]
    }
  4. Установите точки останова в своем коде.
  5. Запустите конфигурацию отладки (Отладка: откройте файл launch.json), чтобы начать отладку.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3