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

Как я могу отладить конфликтующие расширения Protobuf в модульных тестах Go с помощью VS Code?

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

How can I debug conflicting Protobuf extensions in Go unit tests using VS Code?

Запуск и отладка модульных тестов с флагами: решение конфликтующих расширений Protobuf

При отладке модульных тестов в VS Code может потребоваться пройти дополнительные флаги для учета конфликтующих расширений Protobuf. В этом руководстве представлено решение этой проблемы, обеспечивающее беспрепятственную отладку.

Исходная конфигурация в файле settings.json VS Code пытается добавить обязательный флаг '-ldflags "-X google.golang.org/protobuf/reflect /protoregistry.conflictPolicy=предупреждать"'. Однако в этой конфигурации возникает проблема, когда VS Code генерирует тестовую команду с одинарными кавычками вокруг флага.

Чтобы решить эту проблему, требуется корректировка конфигурации в файле settings.json. Модификация должна удалить одинарные кавычки вокруг значения флага:

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

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

Для отладки рекомендуется другой подход из-за сложности отладки конкретных тестов с использованием интерфейса VS Code. Компиляция тестового двоичного файла с определенными флагами и использование dlv для автономной отладки обеспечивает больший контроль и эффективность отладки.

Чтобы скомпилировать тестовый двоичный файл:

go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"

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

dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path

Здесь foo.test — это сгенерированный двоичный файл, -count=1 представляет пользовательские флаги для тестирования, а $(pwd)/some/path можно использовать для огуречного стиля. тесты. Подключите редактор к сеансу dlv и начните отладку.

Дополнительная информация

Go также предоставляет удобные методы запуска dlv с помощью встроенных флагов, а для пользователей Vim — vim. Плагин -go позволяет настраивать точку останова и соединение dlv с помощью таких команд, как :GoDebugConnect 127.0.0.1:2345. Следуя шагам, описанным выше, разработчики могут эффективно запускать и отлаживать модульные тесты с флагами, обеспечивая бесперебойное тестирование и обслуживание кода.

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3