Ejecución de pruebas unitarias con indicadores personalizados
En Visual Studio Code (VS Code), puede encontrar desafíos al ejecutar y depurar pruebas unitarias cuando Es necesario proporcionar indicadores específicos. Profundicemos en el problema y brindemos una solución integral.
Resumen del problema
Al ejecutar pruebas unitarias desde VS Code, es posible que los usuarios necesiten especificar indicadores personalizados, como: ldflags en el ejemplo proporcionado. Sin embargo, han enfrentado dificultades al integrar estos indicadores en el ejecutor de pruebas de VS Code.
Configuraciones de trabajo
A través de la experimentación, se ha descubierto que se necesitan dos configuraciones separadas para lograr la funcionalidad de ejecutar prueba y depurar prueba:
Ejecutar prueba:
"go.testFlags": [
"-ldflags",
"-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
]
Prueba de depuración:
"go.testFlags": [
"-ldflags",
"'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
]
Problema subyacente
El motivo de las diferentes configuraciones radica en cómo VS Code genera el comando de prueba. Al depurar, VS Code agrega parámetros adicionales al comando, lo que afecta la forma en que se interpretan las banderas. Como tal, las comillas simples en la configuración de depuración son necesarias para garantizar que los indicadores se pasen correctamente.
Posible solución
Un método alternativo sugerido para depurar pruebas complejas es para compilar el binario de prueba e iniciar una sesión de depuración dlv. Esto permite un control más preciso sobre la ejecución de la prueba y la experiencia de depuración.
Uso de dlv para depurar
Los siguientes pasos describen cómo usar dlv para depurar pruebas unitarias:
Compile el binario de prueba con los indicadores necesarios, como:
go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
Iniciar una sesión dlv sin cabeza:
dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path
En VS Code, abra el archivo de configuración de inicio (Depurar: abrir launch. json). Cree una configuración similar a la siguiente:
{
"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"
}
]
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3