Запуск и отладка модульных тестов с флагами: решение конфликтующих расширений 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